在生产环境中如何升级Nginx平滑

来源:爱站网时间:2020-11-10编辑:网友分享
我们在服务器中经常会需要使用nginx模块,但是由于更新的很快,我们是不是就需要对nginx升级,那么你知道在生产环境中如何升级Nginx平滑吗?

我们在服务器中经常会需要使用nginx模块,但是由于更新的很快,我们是不是就需要对nginx升级,那么你知道在生产环境中如何升级Nginx平滑吗?

升级步骤:

1. 记下当前运行的 Nginx Master 进程的 PID

#ps aux | grep nginx 

找到以root运行的nginx的master process的PID,不明白请参考,另一篇博文:Nginx控制信号详解


2. 备份旧版本

cp /usr/local/nginx/sbin/nginx /usr/local/nginx/sbin/nginx.old
ps aux|grep nginx
3. 下载需要的源码包,进行模块配置,然后 make && make install 装到默认路径就可以了

4. 启动新版本的 Nginx, 发送 USR2 信号到旧版本的 PID,这样做会启动新版本,但是旧版本也不会退出, 两个版本会同时运行

kill -USR2 PID
5.如果没有什么问题的话可以停掉所有的旧版本的 worker 了,发送 WINCH 信号到旧版本 PID,此时用 ps aux|grep nginx 可以看到旧版本 Nginx 的 worker 会逐渐退出,最后所有请求都会由新版本的 Nginx 处理

kill -WINCH PID
6. 最后测试新版本没有问题后可以彻底停掉旧版本,发送 QUIT 信号到旧版本的 PID

kill -QUIT PID
如果测试后想恢复到旧版本的话,发送 HUP 信号到旧版 PID

kill -HUP PID
关闭新版本,发送 QUIT 到新版本 PID,如果着急,也可以用 TERM

kill -QUIT PID
最后把备份的 Nginx 替换回去

rm -rf /usr/local/nginx/sbin/nginx
mv /usr/local/nginx/sbin/nginx.old /usr/local/nginx/sbin/nginx

以上就是在生产环境中如何升级Nginx平滑的内容,我们在在生产环境中进行版本升级或者增删模块,之间不会中止 Web 服务,用户不会感受到任何影响。

上一篇:提升Linux服务器性能的技巧

下一篇:Linux下安装Apache和PHP报错怎么办

您可能感兴趣的文章

相关阅读

热门软件源码

最新软件源码下载