Nginx平滑升级

时间:2022-07-22
本文章向大家介绍Nginx平滑升级,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。

Nginx平滑升级

查看当前 Nginx 编译参数

# /usr/local/nginx/sbin/nginx -V
nginx version: nginx/1.15.8
built by gcc 4.8.5 20150623 (Red Hat 4.8.5-5) (GCC)
built with OpenSSL 1.1.1a  20 Nov 2018
TLS SNI support enabled
configure arguments: --user=www --group=www --prefix=/usr/local/nginx

升级nginx

下载新版Nginx

cd ~
wget http://nginx.org/download/nginx-1.16.1.tar.gz
tar xzvf nginx-1.16.1.tar.gz

编译Nginx

•configure

cd nginx-1.16.1/
./configure --user=www --group=www --prefix=/usr/local/nginx

注意:这里的 configure需跟上边 nginx -V 的编译参数一致。

•make

注意:这里一定 不要 执行 make install

替换旧的程序并重启

备份旧的执行程序

mv /usr/local/nginx/sbin/nginx /usr/local/nginx/sbin/nginx.bak

替换新的执行程序

cp objs/nginx /usr/local/nginx/sbin/

检查nginx配置文件是否正常

# /usr/local/nginx/sbin/nginx -t
nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok
nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful

查看nginx版本

/usr/local/nginx/sbin/nginx -V

此时已经变成了新版本

重启

找到 nginx.pid 文件

kill -USR2 cat /usr/local/nginx/logs/nginx.pid

此时会生成一个新的文件:

/usr/local/nginx/logs/nginx.pid.oldbin
kill -QUIT cat /usr/local/nginx/logs/nginx.pid.oldbin

回滚方案

将备份的nginx还原并重启即可

mv /usr/local/nginx/sbin/nginx.bak /usr/local/nginx/sbin/nginx
kill -USR2 cat /usr/local/nginx/logs/nginx.pid
kill -QUIT cat /usr/local/nginx/logs/nginx.pid.oldbin