前言

如果服务器正在运行的Nginx要进行升级、添加或删除模块时,我们需要停掉服务器并做相应修改,这样服务器就要在一段时间内停止服务,Nginx可以在不停机的情况下进行各种升级动作而不影响服务器运行。

步骤1:

先用新程序替换旧程序文件,直接编译到Nginx安装目录中。


cp /usr/local/nginx/sbin/nginx /usr/local/nginx/sbin/nginx_bak

./configure --user=nobody --group=nobody --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module --with-http_perl_module

make

make install

步骤2:执行命令

kill -USR2 旧版程序的主进程号或进程文件名

此时旧的Nginx主进程将会把自己的进程文件改名为.oldbin,然后执行新版 Nginx。新旧Nginx会同时运行,共同处理请求。

kill -WINCH 旧版主进程号

这时要逐步停止旧版 Nginx,慢慢旧的工作进程就都会随着任务执行完毕而退出,新版的Nginx的工作进程会逐渐取代旧版 工作进程。