nginx平滑升级了解一下。

本文介绍了在保持线上业务不间断的情况下,如何进行nginx的平滑升级。详细讲解了升级过程,包括在不影响老进程运行时启动新进程,以及通过发送特定信号实现新旧进程的切换。同时强调了升级过程中的注意事项,如备份、测试和监控,以确保系统的稳定运行。
摘要由CSDN通过智能技术生成

nginx平滑升级

平滑升级是什么:

在线上业务不停止的情况下,进行nginx的升级

过程简述:
  1. 在不影响老进程运行情况下启动新进程。
  2. 老进程负责处理还没有处理完的请求,但不在接受新的处理请求。
  3. 此时新进程接受处理新的请求。
  4. 当老进程处理完所有请求后,关闭所有连接后停止运行。
原理:
  1. 多进程模式下的请求分配方式
  • nginx默认工作在多进程模式下,就是在进程启动完成配置加载和端口绑定等动作后,fork出指定数量的工作
    进程,这些子进程会持有监听端口文件描述符(fd)并通过在该描述上添加监听事件来接受链接。
  1. 信号的接受和处理
  • nginx主进程在启动完成后进入等待状态,负载相应个类系统消息
  • 主进程支持的信号
信号
QUIT 等待工作进程结束后在退出
KILL 强制终止进程
HUP 重新加载配置文件,使用新的配置启动进程,并逐步关闭当前进程
USR1 重新打开日志文件
USR2 启动新的主进程,实现热升级
WINCH 逐步关闭工作进程
TIME,IN 立即退出
  • 工作进程支持的信号
信号 解释
TIME,IN 立即退出
QUIT 等待所有请求结束后再退出
USER1 重新打开日志文件
平滑升级演示
  1. 查看当前nginx版本
[root@nginx-up nginx]# nginx -v
nginx version: nginx/1.15.0           #当前版本1.15.0
  1. 去下载一个较新的安装包并解压
  • 下载地址:http://nginx.org/download/
[root@nginx-up nginx]# ls
nginx-1.9.0.tar.gz           #下载一个1.90版本

[root@nginx-up nginx]# tar -xf nginx-1.9.0.tar.gz -C /usr/local/src/

  1. 备份当前nginx的nginx文件
[root@nginx-up nginx-1.9.0]# cp/opt/data/nginx/sbin/nginx/opt/data/nginx/sbin/nginx_`date "+%F%H%M%S"`     #根据自己安装目录进行备份,位置不一定。

[root@nginx-up nginx-1.9.0]# cd /opt/data/nginx/sbin/
[root@nginx-up sbin]# ls
nginx  nginx_2020-08-02090940
  1. 在另一台机器上不断测试当前旧版本nginx是否正常运行。
[root@lnmp-nginx /]# while true;  #利用while循环每秒检测一次心跳,进程出现问题可以及时停止升级。
> do curl 192.168.126.138;        #升级过程中不断查看检测状态
> sleep 1;
> done
 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值