图文详解Nginx版本平滑升级方案


Posted in Servers onSeptember 15, 2021

背景:

由于负载均衡测试服务器中nginx版本过低,存在安全漏洞,查询相关修复漏洞资料,需要采取nginx版本升级形式对漏洞进行修复。

Nginx平滑升级方案

1、案例采用版本介绍

旧版本 nginx-1.12.2.tar.gz

新版本 nginx-1.20.1.tar.gz

2、nginx-1.12.2版本为当前运行版本

图文详解Nginx版本平滑升级方案
图文详解Nginx版本平滑升级方案

设置端口8080和对主页index.html进行修改,后续进行平滑升级后,依然可以对其访问。

图文详解Nginx版本平滑升级方案

3、解压新版本 nginx-1.20.1.tar.gz编译安装至旧版本nginx-1.12.2目录下,运行原有nginx.conf配置文件,执行如下

./configure --prefix=/usr/local/nginx-1.12.2  --conf-path=/usr/local/nginx-1.12.2/nginx.conf --pid-path=/usr/local/nginx-1.12.2/nginx.pid --user=ngadm --group=ngadm --with-http_stub_status_module --without-http_rewrite_module 

make && make install

4、完成后1.20.1版本会自动在原sbin目录下生产新的nginx二进制文件,旧的nginx会自动被替换成nginx.old

图文详解Nginx版本平滑升级方案

5、平滑升级

Nginx对进程的控制能力非常强大,可以通过信号指令控制进程。常用的信号有:

  • -QUIT,表处理完当前请求后,关闭进程。
  • -HUP,表示重新加载配置,也就是关闭原有的进程,并开启新的工作进程。此操作不会中断用户的访问请求,因此可以通过此信号平滑的重启Nginx。
  • -USR2,用于平滑升级可执行程序。
  • -WINCH,从容关闭工作进程。

根据nginx进程控制信号,执行如下:

kill -USR2 38323(旧进程PID为38323)
ps -ef |grep nginx

图文详解Nginx版本平滑升级方案

切换为新的master进程,关闭旧的work进程,注意此时旧的master进程依然存在,执行如下:

kill ?WINCH 38323 (旧进程PID为38323)
ps -ef |grep nginx

图文详解Nginx版本平滑升级方案

检查此时版本

sbin/nginx -v

图文详解Nginx版本平滑升级方案

已平滑升级成功。

注意:此时新版本nginx的masterPID为41063,同时也存在旧版本的master进程(旧进程PID为38323),若无需再回退时操作,可执行旧进程退出操作,执行如下:

kill ?QUIT 38323

回退步骤

关于回退操作分为两类:

1、事前对旧版本nginx进行备份,若出现问题,直接将旧版本重新拷贝会/usr/local目录下,重启nginx旧版本操作,执行如下:

killall nginx
cp nginx-1.12.2.bak nginx-1.12.2
/usr/local/nginx-1.12.2/sbin/nginx ?c /usr/local/nginx-1.12.2/nginx.conf

检查nginx状态
ps ?ef |grep nginx

2、在新版本nginx的master进程和旧版本的master进程同时存在时,执行如下:

切换回旧版本的master进程

kill -HUP 旧masterPID

图文详解Nginx版本平滑升级方案

关闭新版本nginx的master进程,并将原sbin目录下的nginx.old(旧版本nginx二进制文件)重新改回nginx,以便管理nginx。

kill -WINCH 新masterPID
kill -QUIT 新masterPID
cp /usr/local/nginx-1.12.2/sbin/nginx.old /usr/local/nginx-1.12.2/sbin/nginx

图文详解Nginx版本平滑升级方案

再次确认此时nginx版本已退回原版本

sbin/nginx -v

图文详解Nginx版本平滑升级方案

总结

到此这篇关于Nginx版本平滑升级方案的文章就介绍到这了,更多相关Nginx版本平滑升级内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Servers 相关文章推荐
Nginx的rewrite模块详解
Mar 31 Servers
Nginx服务器添加Systemd自定义服务过程解析
Mar 31 Servers
Nginx域名转发使用场景代码实例
Mar 31 Servers
Nginx反向代理配置的全过程记录
Jun 22 Servers
nginx内存池源码解析
Nov 20 Servers
解决xampp安装后Apache无法启动
Mar 21 Servers
详解使用内网穿透工具Ngrok代理本地服务
Mar 31 Servers
Kubernetes部署实例并配置Deployment、网络映射、副本集
Apr 01 Servers
阿里云k8s服务升级时502错误 springboot项目应用
Apr 09 Servers
Docker下安装Oracle19c
Apr 13 Servers
使用 Docker Compose 构建复杂的多容器App
Apr 30 Servers
服务器间如何实现文件共享
May 20 Servers
Nginx配置文件详解以及优化建议指南
Sep 15 #Servers
学习nginx基础知识
Nginx location 和 proxy_pass路径配置问题小结
Sep 04 #Servers
Nginx使用Lua模块实现WAF的原理解析
Nginx部署vue项目和配置代理的问题解析
centos8安装nginx1.9.1的详细过程
Aug 02 #Servers
Nginx反向代理至go-fastdfs案例讲解
Aug 02 #Servers
You might like
天使彦史上最神还原,性别曝光的那一刻,百万网友恋爱了
2020/03/02 国漫
Notice: Trying to get property of non-object problem(PHP)解决办法
2012/03/11 PHP
php简单的留言板与回复功能具体实现
2014/02/19 PHP
ThinkPHP模板自定义标签使用方法
2014/06/26 PHP
PHP查看当前变量类型的方法
2015/07/31 PHP
PHP实现原生态图片上传封装类方法
2016/11/08 PHP
js中如何把字符串转化为对象、数组示例代码
2013/07/17 Javascript
Javascript中call的两种用法实例
2013/12/13 Javascript
js查找某元素中的所有图片地址的方法
2014/01/16 Javascript
Express作者TJ告别Node.js奔向Go
2014/07/14 Javascript
jQuery带时间的日期控件代码分享
2015/08/26 Javascript
浅谈Angular 的变化检测的方法
2018/03/01 Javascript
基于React Native 0.52实现轮播图效果
2020/08/25 Javascript
详解Vue 换肤方案验证
2019/08/28 Javascript
vue改变循环遍历后的数据实例
2019/11/07 Javascript
vue中使用带隐藏文本信息的图片、图片水印的方法
2020/04/24 Javascript
如何用JS模拟实现数组的map方法
2020/07/30 Javascript
[59:32]Liquid vs Fnatic 2019国际邀请赛淘汰赛败者组BO1 8.20.mp4
2020/07/19 DOTA
Python 爬虫学习笔记之单线程爬虫
2016/09/21 Python
Python使用迭代器捕获Generator返回值的方法
2017/04/05 Python
python 系统调用的实例详解
2017/07/11 Python
python中的break、continue、exit()、pass全面解析
2017/08/05 Python
python中利用zfill方法自动给数字前面补0
2018/04/10 Python
Python实现的求解最小公倍数算法示例
2018/05/03 Python
python爬虫获取小区经纬度以及结构化地址
2018/12/30 Python
python使用正则筛选信用卡
2019/01/27 Python
python调用c++ ctype list传数组或者返回数组的方法
2019/02/13 Python
Python字符串的一些操作方法总结
2019/06/10 Python
keras自动编码器实现系列之卷积自动编码器操作
2020/07/03 Python
应届生保险求职信
2013/11/11 职场文书
蛋糕店的商业计划书范文
2014/01/27 职场文书
槐乡的孩子教学反思
2014/04/27 职场文书
党员四风问题对照检查材料
2014/09/27 职场文书
大国崛起日本观后感
2015/06/02 职场文书
法律讲堂观后感
2015/06/11 职场文书
2015年秋季运动会加油稿
2015/07/22 职场文书