重识Nginx - 16 Nginx reload流程浅析

简介: 重识Nginx - 16 Nginx reload流程浅析

20200103193054943.png

图解reload流程

0935c9488c1341b0ae29f99fad7e4902.png


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

相关文章
|
关系型数据库 MySQL 应用服务中间件
Mac PHP-Nginx-Mysql 本地开发日常启动流程
Mac PHP-Nginx-Mysql 本地开发日常启动流程
64 1
|
1月前
|
缓存 运维 应用服务中间件
运维系列.Nginx配置中的高级指令和流程控制
运维系列.Nginx配置中的高级指令和流程控制
36 1
|
4月前
|
算法 应用服务中间件 网络安全
windows下采用 nginx配置websocket支持wss流程
windows下采用 nginx配置websocket支持wss流程
428 0
|
JavaScript 应用服务中间件 开发工具
Nuxt.js(Vue SSR)创建项目到服务器(Nginx+PM2)部署详细流程(下)
Nuxt.js(Vue SSR)创建项目到服务器(Nginx+PM2)部署详细流程(下)
531 0
|
资源调度 JavaScript 前端开发
Nuxt.js(Vue SSR)创建项目到服务器(Nginx+PM2)部署详细流程(上)
Nuxt.js(Vue SSR)创建项目到服务器(Nginx+PM2)部署详细流程
548 0
|
物联网 应用服务中间件 nginx
重识Nginx - 15 使用信号管理Nginx的父子进程
重识Nginx - 15 使用信号管理Nginx的父子进程
88 0
|
缓存 网络协议 应用服务中间件
重识Nginx - 14 Nginx 多进程结构
重识Nginx - 14 Nginx 多进程结构
107 0
|
应用服务中间件 数据安全/隐私保护 nginx
重识Nginx - 13 对称加密与非对称加密的应用场景 & Nginx性能指标
重识Nginx - 13 对称加密与非对称加密的应用场景 & Nginx性能指标
147 0
|
安全 算法 应用服务中间件
重识Nginx - 12 SSL/TLS 浅析
重识Nginx - 12 SSL/TLS 浅析
106 0
|
缓存 应用服务中间件 nginx
重识Nginx - 11 使用ngx_http_proxy_module的proxy_cache搭建一个具备缓存功能的反向代理服务
重识Nginx - 11 使用ngx_http_proxy_module的proxy_cache搭建一个具备缓存功能的反向代理服务
197 0