重识Nginx - 16 Nginx reload流程浅析

2022-10-06 08:03:17 浏览数 (1)

文章目录

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

图解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进程关闭监听句柄,处理完当前连接后结束进程

关闭监听句柄 ,就是socket,也可以叫套接字,或者叫fd文件句柄

0 人点赞