这里测试一下nginx的平滑升级,以备不时之需
查看nginx版本号:
[root@zklf-server01 ~]# /application/nginx/sbin/nginx -Vnginx version: nginx/1.14.2built by gcc 4.8.5 20150623 (Red Hat 4.8.5-36) (GCC)
查看nginx的编译时用到了哪些参数
(好吧,我承认这里我偷懒了,只给了一个默认路径)
[root@zklf-server01 nginx]# /application/nginx/sbin/nginx -Vnginx version: nginx/1.14.2built by gcc 4.8.5 20150623 (Red Hat 4.8.5-36) (GCC) configure arguments: --prefix=/application/nginx
下载新版本,编译,make。这里的编译参数要和原来的参数相同。所有参数都要相同
[root@zklf-server01 application]# wget http://nginx.org/download/nginx-1.15.10.tar.gztar zxf nginx-1.15.10.tar.gz./configure --prefix=/application/nginxmakemv/application/nginx/sbin/nginx /application/nginx/sbin/nginx.oldcp objs/nginx /application/nginx/sbin/ # 这里的objs是新版make过的目录下面的
测试新版本的nginx
[root@zklf-server01 nginx-1.15.10]# /application/nginx/sbin/nginx -tnginx: the configuration file /application/nginx/conf/nginx.conf syntax is oknginx: 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 -Vnginx version: nginx/1.15.10built by gcc 4.8.5 20150623 (Red Hat 4.8.5-36) (GCC)
差不多就这样了,我的所有nginx安装路径是在/application/nginx 下面。环境变量单独设置在/etc/profile.d/nginx.sh