企业级运维——Nginx的平滑升级与版本回退

本文详细介绍了如何在Linux环境下对Nginx进行平滑升级和版本回退操作。通过理解Nginx的进程模型,特别是master和worker进程的角色,可以实现不中断服务的热部署。在实验环境中,作者演示了从1.17.1版本升级到1.16.0版本的过程,包括编译、安装、更新和回滚的步骤,强调在回滚时保持旧版master进程的重要性,以便在新版本出现问题时迅速恢复。
摘要由CSDN通过智能技术生成

原理:

  • nginx 支持热加载 热部署 ,在不打断用户请求的情况下更新版本
  • Nginx 只所以出名,和它内部的精密设计有关。Nginx 采用了高度模块化的设计思路,并且内部的进程主要有两类,master 进程 和 worker 进程。其中 master 进程只有一个,worker 进程可以有多个。
  • worker 进程才是真正 working 的进程,才是真正处理请求的进程。worker 进程全部都是 master 进程的子进程。worker 进程是以普通用户的身份进行运行的,这样就可以极大增加程序的安全性。就算是万一有一个进程被劫持,那也不会有管理员权限。
  • nginx 的热部署和其并发模型有着密不可分的关系。说白了,就是因为 master 进程的关系。当通知 ngnix 重读配置文件的时候,master 进程会进行语法错误的判断。如果存在语法错误的话,返回错误,不进行装载;如果配置文件没有语法错误,那么 ngnix 也不会将新的配置调整到所有 worker 中。而是,先不改变已经建立连接的 worker,等待 worker 将所有请求结束之后,将原先在旧的配置下启动的 worker 杀死,然后使用新的配置创建新的 worker。

实验环境;
rhel7.3d的虚拟机
两个不同版本的nginx的包
nginx-1.17.1.tar.gz nginx-1.16.0.tar.gz
先安装1.17版本,更新为1.16版本

nginx的更新和回滚

1.先下载nginx的源码包编译安装1.17.1
1)解压源码包
[root@server1 ~]# tar zxf nginx-1.17.1.tar.gz [root@server1 ~]# cd nginx-1.17.1/ [root@server1 nginx-1.17.1]# ls auto CHANGES.ru configure html man src CHANGES conf contrib LICENSE README
在这里插入图片描述
解压出来的源码安装包下的文件的解释
在这里插入图片描述

2)编译
[root@server1 nginx-1.17.1]# ./configure --prefix=/usr/local/nginx --with-file-aio
编译过程中会需要一些包,如果读者在编译过程中需要什么包,根据报错安装就可以了,一般需要装提示包的devel包
3)安装
[root@server1 nginx-1.17.1]# make && make install
make install 实际上就是将二进制执行文件和一些配置文件复制到/usr/local/nginx目录下
4)修改配置文件

vim /usr/lo
  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值