Linux centos7 nginx 平滑升级
2021-08-19
为了方便读者的阅读,该文通篇使用绝对路径,各位朋友们在实际上操作中可以根据实际情况编写路径(#^.^#)
1. 当前环境
# system cat /etc/redhat-release CentOS Linux release 7.5.1804 (Core) # nginx ./nginx -V nginx version: nginx/1.16.1 built by gcc 4.8.5 20150623 (Red Hat 4.8.5-28) (GCC) configure arguments: --prefix=/home/tomcat/app/nginx
2. 下载
# 下载新版的 nginx,版本为 1.18.0 wget -P /home/tomcat/bag/ http://nginx.org/download/nginx-1.18.0.tar.gz
3. 升级
# 解压到指定文件夹下 tar -zxf nginx-1.18.0.tar.gz -C /home/tomcat/app/ # 到解压目录下 cd /home/tomcat/app/nginx-1.18.0
# 预编译,老版用到了什么模块,这里也要加上的,我前一版预编译也是这样进行的
./configure --prefix=/home/tomcat/app/nginx/
出现这样的提示信息后就可以进行编译了
# 编译 make
注意不要 make install ,因为这会覆盖安装新版本的 nginx。
做完上面的步骤就可以开始升级了
首先我们要将老版的 nginx 备份
cd /home/tomcat/app/nginx/sbin
# 打开 nginx 服务
./nginx
# 备份 mv nginx nginx1.16.1
然后将新版的执行文件复制到这个文件夹下
cd /home/tomcat/app/nginx-1.18.0/objs cp nginx /home/tomcat/app/nginx/sbin
现在就可以进行平滑升级操作了
# 查看当前 nginx 进程号 ps -ef | grep nginx # 平滑开启新的 nginx 服务,此时新的 master 进程已经正常开启,但老的 work 进程也存在 kill -USR2 主进程号
# 将老的 work 进程平滑停止 kill -WINCH 老版worker 进程号
# 关闭老的 nginx master进程 kill -QUIT 老版主进程号
至此,平滑升级结束,可以看到 nginx 服务并没有受到影响(因为我部署了负载均衡,所以打开是这个界面)
本文来自博客园,作者:元月二一,转载请注明原文链接:https://www.cnblogs.com/ljq225/p/15163000.html