Nginx学习笔记(三)

Nginx进程架构:

         为了高可用和高可靠的目的,采用多进程结构(若使用多线程,出现段错误时会导致进程奔溃),Worker进程是真正处理请求的,Master进程监控Worker进程工作情况;进程间的通信是使用共享内存实现的,父子进程之间是通过信号进行管理的。

Nginx进程管理:信号

        调用Nginx发送相应的命令和使用kill直接发送信号的结果是一样的;

reload流程:

  1. 向master发送HUP信号(reload命令)
  2. master进程检验配置语法是否正确
  3. master进程打开新的监听端口
  4. master进程用新的配置文件启动新的worker子进程(新老worker并存)
  5. master进程向老的worker子进程发送QUIT信号(优雅地关闭)
  6. 老的worker子进程关闭监听句柄(不处理新的连接),处理完当前进程后结束进程

热升级流程:

  1. 将旧的Nginx文件换成新的Nginx文件(注意备份)
  2. 向master进程发送USR2信号
  3. master进程修改pid文件名,加后缀.oldbin
  4. master进程用新的Nginx文件启动新的master进程(子进程)
  5. 向老master进程发送QUIT信号,关闭老的master进程
  6. 回滚:向老的master进程发送HUP,向新的master进程发送QUIT

worker进程:优雅地关闭(主要针对http请求)

  1. 设置定时器:worker_shutdown_timeout
  2. 关闭监听句柄,不处理新的连接
  3. 关闭空闲连接
  4. 在循环中等待全部连接关闭(若超出worker_shutdown_timeout立即停止)
  5. 退出进程

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值