标签:流程 配置 概览 connections Nginx 模块 cycle ngx 指针
Nginx启动流程概览
1、 Init Cycle
2、 Init Process
3、 Start Worker
4、 Event Handle
Init Cycle
- ngx_cycle 是nginx全局配置,类型为ngx_cycle_t,其结构如下(已精简):
struct ngx_cycle_s {
void ****conf_ctx; //全局配置项
ngx_pool_t *pool;
ngx_log_t *log;
ngx_connection_t **files;
ngx_connection_t *free_connections;
ngx_module_t **modules; //module数组
ngx_queue_t reusable_connections_queue; //重复使用的socket存放队列
ngx_uint_t reusable_connections_n;
ngx_array_t listening;
ngx_rbtree_t config_dump_rbtree;
ngx_rbtree_node_t config_dump_sentinel;
ngx_connection_t *connections;
ngx_event_t *read_events;
ngx_event_t *write_events;
... ...
};
- 看到ngx_cycle的conf_ctx的指针的层次可知,这个结构将会很复杂,其大致结构为:
-
- 第一层指针指向几个类型为NGX_CORE_MODULE的配置结构,以http模块为例,指针类型为ngx_http_conf_ctx_t;
-
- 第二层指针指向子类型配置的结构数组,主要体现在HTTP类型模块上,HTTP配置比较复杂,分为Main、Svr、Location三类,所以这一层是含三个元素的数组;
-
- 第三层指针指向各个同类型模块的不同类型配置,对HTTP模块而言,Main级别的配置有多个,SVR级别和Loc级别也有多个;
-
- 最后一层指针便能访问具体的某一模块的特定配置项。
待续
标签:流程,配置,概览,connections,Nginx,模块,cycle,ngx,指针 来源: https://www.cnblogs.com/zhangyi-studio/p/12657179.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。