ngx_cycle_s
ngx_cycle_s结构体
typedef ngx_cycle_s ngx_cycle_t;
struct ngx_cycle_s {
void ****conf_ctx;
ngx_pool_t *pool;
ngx_log_t *log;
ngx_log_t new_log;
ngx_uint_t log_use_stderr;
ngx_connection_t **files;
ngx_connection_t *free_connections;
ngx_uint_t free_connection_n;
ngx_queue_t reusable_connections_queue;
ngx_array_t listening;
ngx_array_t paths;
ngx_list_t open_files;
ngx_list_t shared_memory;
ngx_uint_t connection_n;
ngx_uint_t files_n;
ngx_connection_t *connections;
ngx_event_t *read_events;
ngx_event_t *write_events;
ngx_cycle_t *old_cycle;
ngx_str_t conf_file;
ngx_str_t conf_param;
ngx_str_t conf_prefix;
ngx_str_t prefix;
ngx_str_t lock_file;
ngx_str_t hostname;
};
ngx_cycle_s结构体支持的主要方法
函数名 | 参数含义 | 执行意义 |
---|
ngx_cycle_t *ngx_init_cycle(ngx_cycle_t *old_cycle) | old_cycle表示临时的ngx_cycle_t指针,一般仅用来传递ngx_cycle_t结构体中的配置文件路径等 | 返回初始化成功的完整的ngx_cycle_t结构体 |
ngx_int_t ngx_process_options(ngx_cycle_t *cycle) | cycle通常是刚刚分配的ngx_cycle_t结构体指针 | 用运行Nginx可能携带的目录参数来初始化cycle |
ngx_int_t ngx_add_inherited_sockets(ngx_cycle_t *cycle) | 同上 | 通过该函数来使用已经打开的TCP监听端口 |
ngx_int_t ngx_open_listening_sockets(ngx_cycle_t *cycle) | 同上 | 监听、绑定cycle中的listening动态数组指定的相应端口 |
void ngx_configure_listening_sockets(ngx_cycle_t *cycle) | 同上 | 根据nginx.conf中的配置项设置已经监听的句柄 |
void ngx_close_listening_sockets(ngx_cycle_t *cycle) | 同上 | 关闭cycle的listening中的套接字 |
void ngx_master_process_cycle(ngx_cycle_t *cycle) | 同上 | 进入master进程的工作循环 |
void ngx_single_process_cycle(ngx_cycle_t *cycle) | 同上 | 进入单进程(非master、worker进程工作模式的工作循环 |
void ngx_start_cache_manager_processes(ngx_cycle_t *cycle,ngx_channel_t *ch) | 同上,ch是将要向子进程发送的信息 | 向所有已经打开的channel(通过socketpair生成的句柄进行通信)发送ch信息 |
void ngx_signal_worker_processes(ngx_cycle_t *cycle,int signo) | 同上,signo是信号 | 处理worker进程接收到的信号 |
ngx_uint_t ngx_reap_children(ngx_cycle_t *cycle) | 同上 | 检查master进程的所有子进程,根据每个子进程的状态判断是否要启动子进程 |
void ngx_master_process_exit(ngx_cycle_t *t) | 同上 | 退出master工作循环 |
void ngx_worker_process_cycle(ngx_cycle_t *cycle,void *data) | 同上 | 进入worker工作循环 |
void ngx_worker_process_init(ngx_cycle_t *cycle,ngx_uint_t priority) | 同上,priority是worker进程的系统优先级 | 进入worker进程工作循环之前的初始化工作 |
void ngx_cache_manager_process_cycle(ngx_cycle_t *cycle,void *data) | 同上,data是传入ngx_cache_manager_ctx_t结构体的指针 | 执行缓存管理工作的循环方法 |
void ngx_worker_process_exit(ngx_cycle_t *cycle) | 同上 | 退出worker进程工作循环 |
void ngx_process_events_and_timers(ngx_cycle_t *cycle) | 同上 | 使用事件模块处理截止到目前已收到的事件 |