nginx 进程的类型

来源:互联网 发布:qq好友克隆软件下载 编辑:程序博客网 时间:2024/05/01 03:55

     nginx 有使用ngx_process 变量表示进程的类型,这个变量的取值在ngx_process_cycle.h中定义,主要有下面几个

 

     一 maste or single 

     nginx 可以单个进程工作,也可以 master+ worker模式工作,所以当使用前者模式启动的时候,进程就是NGX_PROCESS_SINGLE ; 当使用后者的时候,那么父进程就是 NGX_PROCESS_MASTER,而子进程就是 NGX_PROCESS_WORKER。使用哪种模式可以在配置文件中设置,默认使用后者,如果配置文件中 masterprocess off 开启,那么就使用了前者。

 

       ngx_process 初始值是0,也就是NGX_PROCESS_SINGLE,在 main 函数中:

 

    if (ccf->master && ngx_process == NGX_PROCESS_SINGLE) {
        ngx_process = NGX_PROCESS_MASTER;
    }

 

    也就是核心模块中的master设置了,并且进程类型还未初始化,那么当前进程就是master进程。

    我们看ccf->master 这个变量是在核心模块配置的初始化中,默认设置为1:

 

      ngx_conf_init_value(ccf->master, 1);

 

     因此,整个系统默认就是master模式,只有在配置中masterprocess off 才是single模式。

 

 

    二  signal

    当我们需要关闭、重启等操作的时候,需要向工作中的进程发送信号,谁来发呢,这个进程就是 NGX_PROCESS_SIGNALLER

 

     三 other

      辅助进程暂时还没有搞清楚。