Nginx服务器平滑升级重启

Nginx服务器平滑升级重启

# ./sbin/Nginx -g QUIT 用于平缓停止nginx,./sbin/Nginx 为你的nginx的安装目录

平滑重启的过程

Nginx服务进程(pid)接收到平滑重启信号后,先读取新的Nginx的配置文件,如果配置语法正确,则启动新的Nginx服务,然后平缓关闭旧的服务进程. 如果新的Nginx配置有问题,将显示错误,仍然使用旧的Nginx进程提供服务.

# ./sbin/nginx -g HUP [-c newConfFile] HUP信号用于发送平滑重启信号
newConfFile为可选项,用于指定新配置文件的路径.

Nginx服务器平滑升级

过程:Nginx服务收到USR2信号后,先将旧的nginx.pid文件(一般在logs目录下,名称改过的也是一样的过程了)添加.oldbin后缀,变为nginx.pid.oldbin文件,然后执行新版本Nginx服务的二进制文件启动服务.如果新服务启动成功,系统中将有新旧两个Nginx服务共同提供web服务.之后,需要向旧的Nginx服务进程发送WINGH信号,使旧的Nginx服务平常停止.并删除nginx.pid.oldbin文件.

在发送WINGH信号前,可随时停止新的Nginx服务.
为实现Nginx平滑升级,新的服务器安装路径应当和旧的保持一致.一般是先备份旧的服务器.
可通过以下命令,将旧服务器的安装路径更改为新服务器的安装路径:
# ./Nginx/nginx -p newInstallPath
备份好旧服务器,安装新服务器即可.

做好准备工作以后,使用以下命令实现Nginx服务的平滑升级.
# ./sbin/Nginx -g USR2 USR2 信号用于发送平滑升级信号

或用# kill USR2 ' /Nginx/logs/nginx.pid '

可以通过ps -ef|grep nginx查看新的nginx服务启动情况,正常后,再使用:
# ./sbin/Nginx -g WINCH
这样就完成了不停止提供web服务的前提下,完成了nginx服务的平滑升级.