over 5 years ago

nginx 支持热重启,热升级。即在不停止服务的情况下完成系统的升级与运行参数修改。这些都是建立在信号机制的基础上的。

如果修改了 nginx 的源代码,并重新构建并测试过了,也可以在不中断现有HTTP的服务下热升级 nginx,命令如下:

首先查找nginx.conf的位置

# nginx -V

$ sudo find / -iname "nginx.conf"
/etc/nginx/nginx.conf

打开vim nginx.conf,查看nginx.pid的位置

pid /run/nginx.pid;

给nginx的master进程发指令

kill -USR2 `cat /run/nginx.pid`

这时nginx的新旧版本同时工作,如果要让旧版本程序服务完正在连接的HTTP请求后即退出,命令如下:

kill -WINCH `cat /run/nginx.pid.oldbin`

过一段时间后,旧进程的worker 进程全部退出了,就可以关闭旧进程的master进程了

kill -QUIT `cat /run/nginx.pid.oldbin`

这里升级完成。

← 系统管理员的 Ruby 青春 →
 
comments powered by Disqus