Advertisement

12. Nginx 流程中 ngx_init_cycle

阅读量:

Nginx在完成ngx_add_inherited_sockets操作后,将执行ngx_init_cycle函数以构建新的cycle结构。通过以下代码的分析可以发现,在ngx_init_cycle函数内部,Nginx主要完成了以下几个关键步骤:

  1. 基于已有的旧cycle对象生成新的cycle对象,并借助旧cycle的相关信息,预估新cycle所需占用的内存资源

  2. 对新建的cycle结构进行初始化处理,其中包括文件的打开操作以及监听套接字的建立等任务

  3. 对配置文件内容进行解析与加载

  4. 执行各个模块的初始化流程

  5. 生成并写入pidfile文件,用于记录进程标识信息

  6. 若出现异常情况,则执行回滚操作,并关闭所有非必要的文件描述符以及监听套接字

复制代码
 /* core/ngx_core.h */

    
  
    
 typedef struct ngx_cycle_s       ngx_cycle_t;
    
  
    
  
    
 /* core/ngx_cycle.h */
    
  
    
 struct ngx_cycle_s {                 // ngx_cycle_t结构体定义
    
     void           ****conf_ctx;     // 模块配置上下文数

全部评论 (0)

还没有任何评论哟~