Nginx(9)--平滑升级和版本回退

本文详细介绍了如何在不影响服务的情况下对Nginx进行平滑升级,以及在新版本出现问题时如何进行版本回退。平滑升级过程中,强调了使用绝对路径启动Nginx以确保信号传递正确,以及保持编译选项与旧版本一致的重要性。而版本回退部分,讲述了如何恢复旧版启动脚本并重新启动旧版master进程,确保服务连续性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.平滑升级

当nginx版本需要升级时,在不改变提供功能的情况下,进行软件升级

  • tar zxf nginx-1.16.1.tar.gz #解压低版本的nginx
  • cd nginx-1.16.1/ #切换到nginx的目录中
  • ./configure --prefix=/usr/local/nginx #编译,添加安装路径
  • 由于只做版本的升级和回退,因此不用配置其他模块,只需添加安装路径即可
  • yum install gcc openssl-devel pcre-devel -y #安装依赖性软件
  • ./configure --prefix=/usr/local/nginx #编译
  • make && make install #安装
  • cd /usr/local/nginx/sbin #切换到安装路径下
  • ./nginx #启动
  • netstat -antlupe | grep nginx #查看nginx的端口信息
  • 注意:
  • 在启动nginx的时候,使用nginx二进制文件的绝对路径
  • 不能以直接在命令行输入“nginx”的方式启动服务
  • 原因是:向nginx发送更新的信号时,nginx进程可能无法找到新的二进制进程

在这里插入图片描述在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

  • 保护启动脚本
  • cp nginx nginx.old #备份启动脚本
  • 根据老版本的编译选项对新版本的nginx进行编译
  • 为了与老版本的设置保持一致,便于之前的设置和文件能够继续使用,保持不变
  • tar zxf nginx-1.17.8.tar.gz #解压新版本的nginx
  • cd nginx-1.17.8/ #切换到解压后的目录中
  • ./configure --prefix=/usr/local/nginx #编译方式与老版本相同
  • make #进行编译
  • 在编译新版本的时候,configure make结束后不用进行make install,会覆盖掉原来的nginx
此处只进行编译步骤(make),不执行安装步骤(make install)
因为make install命令的本质就是将编译好的文件复制到对应的目录中
所以此处省略make install以防止某些老的配置文件被覆盖
我们只是为了升级nginx原来的配置需要保持不变,所以要确保配置文件不会被覆盖

在这里插入图片描述
在这里插入图片描述

  • cd /usr/local/nginx/sbin/ #切换到安装路径下

  • cp -f /root/nginx-1.17.8/objs/nginx . #强制复制新版本的启动脚本到当前
    在这里插入图片描述

  • ps -ef | grep nginx | grep -v grep #查看现有的nginx的进程

  • 向原来的nginx的master进程发送信号,不再接收新的请求

  • 新的nginx程序开启worker进程,并且开始接收请求

  • kill -USR2 4672 #生成新的master进程

  • kill -WINCH 4672 #生效

  • /usr/local/nginx/sbin/nginx -v #查看版本

  • /usr/local/nginx/sbin/nginx -V #查看版本及编译参数等

  • netstat -antlupe | grep nginx #对外界来说,nginx依旧可用

在这里插入图片描述
在这里插入图片描述

2.版本回退

当新版本有问题时,需要回退到旧版本

  • cp -f nginx.old nginx #强制还原nginx脚本
  • kill -HUP 4672 #重新唤起旧版本的master进程,让其接收请求
  • 新的nginx程序的master进程不接收请求,关闭worker进程,并没有删除
  • kill -USR2 7229
  • kill -WINCH 7229
  • /usr/local/nginx/sbin/nginx -v #查看版本
  • /usr/local/nginx/sbin/nginx -V #查看版本及编译参数等

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值