ICode9

精准搜索请尝试: 精确搜索
首页 > 系统相关> 文章详细

Nginx启动流程概览

2020-04-07 23:54:27  阅读:280  来源: 互联网

标签:流程 配置 概览 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. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有