平滑升级nginx到新版本

时间:2021-09-27 19:29:40

这里测试一下nginx的平滑升级,以备不时之需

查看nginx版本号:

[root@zklf-server01 ~]# /application/nginx/sbin/nginx -V
nginx version: nginx/1.14.
built by gcc 4.8. (Red Hat 4.8.-) (GCC)

查看nginx的编译时用到了哪些参数

(好吧,我承认这里我偷懒了,只给了一个默认路径)

[root@zklf-server01 nginx]# /application/nginx/sbin/nginx -V
nginx version: nginx/1.14.
built by gcc 4.8. (Red Hat 4.8.-) (GCC)
configure arguments: --prefix=/application/nginx

下载新版本,编译,make。这里的编译参数要和原来的参数相同。所有参数都要相同

[root@zklf-server01 application]# wget http://nginx.org/download/nginx-1.15.10.tar.gz
tar zxf nginx-1.15..tar.gz ./configure --prefix=/application/nginx make mv/application/nginx/sbin/nginx /application/nginx/sbin/nginx.old cp objs/nginx /application/nginx/sbin/      # 这里的objs是新版make过的目录下面的

测试新版本的nginx

[root@zklf-server01 nginx-1.15.]# /application/nginx/sbin/nginx -t
nginx: the configuration file /application/nginx/conf/nginx.conf syntax is ok
nginx: configuration file /application/nginx/conf/nginx.conf test is successful

让nginx把nginx.pid文件修改成nginx.pid.oldbin,随即启动nginx,实现不间断

这里的pid文件可以在nginx.conf配置文件中查看位置

kill -USR2 `cat /application/nginx/logs/nginx.pid`  平滑的重启新的部署的进程
kill -WINCH `cat /application/nginx/logs/nginx.pid` 关闭老的进程。所有请求切换到新版本

查看版本号

[root@zklf-server01 ~]# /application/nginx/sbin/nginx -V
nginx version: nginx/1.15.
built by gcc 4.8. (Red Hat 4.8.-) (GCC)

差不多就这样了,我的所有nginx安装路径是在/application/nginx  下面。环境变量单独设置在/etc/profile.d/nginx.sh

平滑升级nginx到新版本