nginx热部署的原理分析:nginx -s reload
nginx热部署的原理nginx -s reload
我们执行这条命令的原因是希望 nginx 不停止服务始终在处理新的请求的同时把 nginx 的配置文件平滑的把旧的 nginx.conf 配置更新为新的 nginx.conf 配置。
这样一个功能对于 nginx 非常有必要,但是有时候我们会发现在执行 nginx -s reload 命令后,worker 子进程的数量会变多了,这是因为老的配置运行的 worker 进程长时间没有退出,当使用 stream 做四层反向代理的时候,可能这种场景会更多。
nginx reload流程
- (1)向 master 进程发送 HUP 信号(reload命令)
- (2)master 进程校验配置文件语法是否正确
- (3)master 进程打开新的监听端口
- (4)master 进程用新配置启动新的 worker 子进程
- (5)master 进程向老 worker 子进程发送 QUIT 信号
- (6)老 worker 进程关闭监听句柄,处理完当前连接后结束进程
reload nginx可以两种方式
(1)./nginx -s reload
(2)kill -HUP masterpid 即 kill -HUP `cat /opt/ngx/logs/nginx.pid`
总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。
相关文章
使用Bash脚本和Logrotate实现Nginx日志切割的方法
Logrotate是一个Linux系统上用来管理日志文件的工具,它可以定期轮转日志文件、压缩旧的日志文件以及删除过期的日志文件,这篇文章主要介绍了使用Bash脚本和Logrotate实现Nginx日志切割,需要的朋友可以参考下2024-05-05基于Xen的VPS ubuntu+nginx+php安装教程
跟踪vps已经很久了,但是因为需要特殊端口开服务,所以符合条件的多为Xen平台的vps。众多比较之后选择了vpslink在西雅图机房,速度还不错。2010-07-07
最新评论