天天看点

重识Nginx - 16 Nginx reload流程浅析

文章目录

  • ​​图解reload流程​​
  • ​​1.向master程发送HUP号( reload命令)​​
  • ​​2.master进程校验配置语法是否正确​​
  • ​​3.master进程打开新的监听端口​​
  • ​​4.master进程用新配置启动新的worker 进程​​
  • ​​5.master进程向老worker 进程发送QUIT号​​
  • ​​6.老worker进程关闭监听句柄,处理完当前连接后结束进程​​
重识Nginx - 16 Nginx reload流程浅析

图解reload流程

重识Nginx - 16 Nginx reload流程浅析

1.向master程发送HUP号( reload命令)

在高并发的场景下 , reload会造成一段时间内worker进程数量大于CPU物理核数的情况,发生CPU争抢,CPU缓存效率下降,因此在QPS或者并发连接数不变的情况下,nginx总体性能会略有下降

2.master进程校验配置语法是否正确

nginx -t检查配置文件正确与否的操作,如果语法错误,reload会中断,原worker进程仍然按照原配置项提供服务

3.master进程打开新的监听端口

在新的配置文件里,如果我们监听了新的端口,master会打开这个监听端口,以便新起的worker进程进行监听和任务处理。

子进程可以共享使用父进程已经打开的端口。 新老worker进程因为是都是同一个master进程的子进程,所以可以的。

配置文件中即使不再监听某个端口,已经建立的连接仍然可以继续处理。

4.master进程用新配置启动新的worker 进程

5.master进程向老worker 进程发送QUIT号

6.老worker进程关闭监听句柄,处理完当前连接后结束进程

继续阅读