nginx学习笔记四(nginx启动时候的master和worker进程)

本文探讨了Nginx作为多进程程序的结构,由一个master进程和多个worker进程协同工作。master进程主要负责管理worker进程,通过信号控制它们的状态。文章通过源码分析,详细阐述了master进程如何在ngx_master_process_cycle中创建worker子进程,并描述了主进程如何进入循环以响应各类信号。
摘要由CSDN通过智能技术生成

nginx一般情况下都是配置成一个多进程的程序,由一个master进程和多个worker进程组成,master进程通过信号来管理worker进程的运行状态。下面从代码的角度来分析master和worker进程的启动情形。

1.在main函数最后,会根据配置方式,决定nginx的启动形式(单进程或者多进程)

if (ngx_process == NGX_PROCESS_SINGLE) {
        ngx_single_process_cycle(cycle);

    } else {
        ngx_master_process_cycle(cycle);
    }

2.在ngx_master_process_cycle中首先是完成信号配置相关程序

 sigemptyset(&set);
    sigaddset(&set, SIGCHLD);
    sigaddset(&set, SIGALRM);
    sigaddset(&set, SIGIO);
    sigaddset(&set, SIGINT);
    sigaddset(&set, ngx_signal_value(NGX_RECONFIGURE_SIGNAL));
    sigaddset(&set, ngx_signal_value(NGX_REOPEN_SIGNAL));
    sigaddset(&set, ngx_signal_value(NGX_NOACCEPT_SIGNAL));
    sigaddset(&set, ngx_signal_value(NGX_TERMINATE_SIGNAL));
    sigaddset(&set, ngx_signal_value(NGX_SHUTDOWN_SIGNAL));
   
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值