平滑升级的过程:nginx收到USR2信号后,先将旧的nginx.pid文件添加.old,变成nginx.pid.oldbin,然后执行新版本的nginx服务器二进制文件启动服务。如果新的服务器启动成功,系统有新旧两个nginx服务共同提供web服务。之后需要向旧的nginx进程发送WINCH信号,使旧的nginx服务器平滑停止,并删除nginx.pid.oldbin文件、在发送WINCH信号前,可以随时停止新的nginx服务。
信号 | 作用 |
---|---|
TERM或者INT | 快速停止Nginx服务 |
QUIT | 平缓停止Nginx服务 |
HUP | 使用新的配置文件重新启动进程,之后平缓重启所有的进程。 |
USR1 | 重新打开日志文件,切割日志 |
USR2 | 用新版本的nginx文件启动服务,之后平缓停止原有的nginx进程,平滑升级。 |
WINCH | 平缓停止worker process,用于nginx服务器平缓升级 |
命令发送格式
kill TERM /usr/local/nginx/logs/nginx.pid
平滑升级案例
新的服务安装目录应该和旧的一致,先备份旧的服务器,然后安装新的服务器
nginx -p newInstallPath;#将旧服务的路径设置为新的服务路径
nginx -g USR2;# 发送USR2的平滑升级的信号
通过ps -ef | grep nginx 查看新的服务是否正常然后
kill WINCH /usr/local/nginx/logs/nginx.pid
完成在不停止web服务的情况下实现nginx服务器的平缓升级。
网友评论