ngx_cycle_s:核心結構,啓動一個nginx進程的全部信息
struct ngx_cycle_s {
void ****conf_ctx; '保存着全部模塊配置的結構體指針'
ngx_pool_t *pool; '內存池'
ngx_log_t *log; 'log模塊'
ngx_log_t new_log; '新的log模塊'
ngx_uint_t log_use_stderr; /* unsigned log_use_stderr:1; */
ngx_connection_t **files; '鏈接數組'
ngx_connection_t *free_connections; '空閒鏈接池的第一個指針,每次事件處理完成。都會從這裏面獲取新的鏈接結構去添加新的事件'
ngx_uint_t free_connection_n; '空閒鏈接池數'
ngx_module_t **modules; '模塊列表'
ngx_uint_t modules_n; '模塊個數'
ngx_uint_t modules_used; /* unsigned modules_used:1; */
ngx_queue_t reusable_connections_queue; '可重複使用的雙向鏈接隊列'
ngx_uint_t reusable_connections_n; '可重複使用的雙向鏈接隊列個數'
ngx_array_t listening; '套接字數組'
ngx_array_t paths; '保存nginx所要操做的目錄,若是目錄不存在。則建立目錄失敗將致使NGINX啓動失敗'
ngx_array_t config_dump; '配置緩存'
ngx_rbtree_t config_dump_rbtree;
ngx_rbtree_node_t config_dump_sentinel;
ngx_list_t open_files; '已打開的全部文件列表'
ngx_list_t shared_memory; '共享內存列表'
ngx_uint_t connection_n; '進程中全部鏈接對象的總數'
ngx_uint_t files_n; 'connection_n 中的總數'
ngx_connection_t *connections; '指向當前進程中的全部鏈接對象,每一個鏈接對象應對一個寫和讀事件'
ngx_event_t *read_events; '讀事件、connections表明讀事件總數'
ngx_event_t *write_events; '寫事件、connections表明讀事件總數'
ngx_cycle_t *old_cycle; '舊的cyc,在ngx_init_cycle時的入參'
ngx_str_t conf_file; '配置文件相對於安裝目錄的路徑名稱'
ngx_str_t conf_param; 'nginx命令的參數'
ngx_str_t conf_prefix; '配置文件 nginx.conf的目錄'
ngx_str_t prefix; 'nginx的安裝路徑'
ngx_str_t lock_file; '文件鎖'
ngx_str_t hostname; '主機名'
};