图文详解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反向代理多个服务器的实现方法
Mar 31 Servers
Nginx部署vue项目和配置代理的问题解析
Aug 04 Servers
教你利用Nginx 服务搭建子域环境提升二维地图加载性能的步骤
Sep 25 Servers
Nginx下SSL证书安装部署步骤介绍
Dec 06 Servers
nginx负载功能+nfs服务器功能解析
Feb 28 Servers
Apache Hudi集成Spark SQL操作hide表
Mar 31 Servers
HDFS免重启挂载新磁盘
Apr 06 Servers
Nginx速查手册及常见问题
Apr 07 Servers
nginx.conf配置文件结构小结
Apr 08 Servers
nginx location 带斜杠【 / 】与不带的区别
Apr 13 Servers
Tomcat弱口令复现及利用
May 06 Servers
WinServer2012搭建DNS服务器的方法步骤
Jun 10 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
php 网上商城促销设计实例代码
2012/02/17 PHP
处理(php-cgi.exe - FastCGI 进程超过了配置的请求超时时限)的问题
2013/07/03 PHP
php获取根域名方法汇总
2014/10/28 PHP
php 删除cookie方法详解
2014/12/01 PHP
IE和Mozilla的兼容性汇总event
2007/08/12 Javascript
js cookies实现简单统计访问次数
2009/11/24 Javascript
javascript 获取url参数和script标签中获取url参数函数代码
2010/01/22 Javascript
js 键盘记录实现(兼容FireFox和IE)
2010/02/07 Javascript
jQuery EasyUI中对表格进行编辑的实现代码
2010/06/10 Javascript
上传的js验证(图片/文件的扩展名)
2013/04/25 Javascript
javascript css红色经典选项卡效果实现代码
2016/05/17 Javascript
使用BootStrap实现悬浮窗口的效果
2016/12/13 Javascript
JavaScript获取ul中li个数的方法
2017/02/13 Javascript
原生JS实现垂直手风琴效果
2017/02/19 Javascript
详解JS中的立即执行函数
2017/02/24 Javascript
详解VUE的状态控制与延时加载刷新
2017/03/27 Javascript
select标签设置默认选中的选项方法
2018/03/02 Javascript
详解vue2.0+vue-video-player实现hls播放全过程
2018/03/02 Javascript
JavaScript实现美化滑块效果
2019/05/17 Javascript
详细分析React 表单与事件
2020/07/08 Javascript
Vue 监听元素前后变化值实例
2020/07/29 Javascript
vue使用exif获取图片旋转,压缩的示例代码
2020/12/11 Vue.js
python函数参数*args**kwargs用法实例
2013/12/04 Python
Python中 传递值 和 传递引用 的区别解析
2018/02/22 Python
Python实现的寻找前5个默尼森数算法示例
2018/03/25 Python
python+ffmpeg批量去视频开头的方法
2019/01/09 Python
PyQt5实现让QScrollArea支持鼠标拖动的操作方法
2019/06/19 Python
Python如何调用外部系统命令
2019/08/07 Python
Python 删除List元素的三种方法remove、pop、del
2020/11/16 Python
Expedia丹麦:全球领先的旅游网站
2018/03/18 全球购物
经济实惠的豪华家具:My-Furniture
2019/03/12 全球购物
《李广射虎》教学反思
2014/04/27 职场文书
学习十八大的心得体会
2014/09/01 职场文书
2014年宣传部个人工作总结
2014/12/06 职场文书
2015小学教师年度考核工作总结
2015/05/12 职场文书
政审证明材料
2015/06/19 职场文书