重识Nginx - 16 Nginx reload流程浅析

Posted 小小工匠

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了重识Nginx - 16 Nginx reload流程浅析相关的知识,希望对你有一定的参考价值。

文章目录



图解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文件句柄

以上是关于重识Nginx - 16 Nginx reload流程浅析的主要内容,如果未能解决你的问题,请参考以下文章

重识Nginx - 14 Nginx 多进程结构

重识Nginx - 14 Nginx 多进程结构

重识Nginx - 系列导读

【nginx】nginx代理websocket,reload nginx

重识Nginx - 04 Nginx常用命令行

重识Nginx - 01 Nginx 主要应用场景及版本概述