nginx 通过信号来控制。对应linux系统就是用
kill
命令。The command kill sends the specified signal to the specified process or process group. If no signal is specified, the TERM signal is sent.
master进程id在默认写入到/nginx/logs/nginx.pid
文件中。文件也可以在nginx.conf
文件中指定。master进程支持以下信号:
kill -TERM `cat ./logs/nginx.pid` #快速停止master进程。
kill -QUIT `cat ./logs/nginx.pid` #优雅的停止。
kill -HUB `cat ./logs/nginx.pid` #改变配置文件。开启一个新的worker进程处理,优雅的停止老的worker 进程。相当于nginx -s reload
kill -USR1 `cat ./logs/nginx.pid` #重新打开log文件。-s reopen命令
kill -USR2 `cat ./logs/nginx.pid` #升级可执行文件。热部署
kill -WINCH `cat ./logs/nginx.pid` #优雅的关闭worker进程。
每个worker进程也可以接收信号:
kill -TERM xxx #快速关闭worker进程
kill -QUIT xxx #优雅退出
kill -USR1 xxx #重新打开日志文件,先mv一个,再去执行这个命令。-s reopen命令
logs/nginx.pid
文件复制一份为logs/nginx.pid.oldbin
,然后运行新的nginx文件,生成新的worker进程。logs/error.log
是否有日志)
WINCH
信号,老master就会发送信号让他对应的worker进程优雅的退出。QUIT信号。注意:老的master进程不会退出。可以用于必要时候的回滚操作。有两种情况。
nginx.conf
的方式启动新的worker进程。然后再给新的master进程发送QUIT信号让他优雅的退出。如果回滚,那么第四步的nginx.pid.oldbin
文件会被丢弃。
如果升级成功,就给老的master进程发送QUIT
信号,让其优雅的退出。
扫码关注腾讯云开发者
领取腾讯云代金券
Copyright © 2013 - 2025 Tencent Cloud. All Rights Reserved. 腾讯云 版权所有
深圳市腾讯计算机系统有限公司 ICP备案/许可证号:粤B2-20090059 深公网安备号 44030502008569
腾讯云计算(北京)有限责任公司 京ICP证150476号 | 京ICP备11018762号 | 京公网安备号11010802020287
Copyright © 2013 - 2025 Tencent Cloud.
All Rights Reserved. 腾讯云 版权所有