图文详解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 相关文章推荐
destoon在各个服务器下设置URL Rewrite(伪静态)的方法
Jun 21 Servers
Nginx反向代理多个服务器的实现方法
Mar 31 Servers
Nginx访问日志及错误日志参数说明
Mar 31 Servers
如何利用map实现Nginx允许多个域名跨域
Mar 31 Servers
Nginx使用Lua模块实现WAF的原理解析
Sep 04 Servers
Nginx中使用Lua脚本与图片的缩略图处理的实现
Mar 18 Servers
Kubernetes控制节点的部署
Apr 01 Servers
安装harbor作为docker镜像仓库的问题
Jun 14 Servers
服务器SVN搭建图文安装过程
Jun 21 Servers
Linux安装Docker详细教程
Jul 07 Servers
Apache Kafka 分区重分配的实现原理解析
Jul 15 Servers
码云(gitee)通过git自动同步到阿里云服务器
Dec 24 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编程中八种常见的文件操作方式
2006/11/19 PHP
Windows下安装Memcached的步骤说明
2010/04/25 PHP
ThinkPHP模板判断输出Defined标签用法详解
2014/06/30 PHP
PHP轻量级数据库操作类Medoo增加、删除、修改、查询例子
2014/07/04 PHP
PHP获取客户端真实IP地址的5种情况分析和实现代码
2014/07/08 PHP
PHP实现获取某个月份周次信息的方法
2015/08/11 PHP
PHP的openssl加密扩展使用小结(推荐)
2016/07/18 PHP
php文件上传 你真的掌握了吗
2016/11/28 PHP
JavaScript写的一个自定义弹出式对话框代码
2010/01/17 Javascript
一个级联菜单代码学习及removeClass与addClass的应用
2013/01/24 Javascript
jqGrid读取选择的多行的某个属性代码
2014/05/18 Javascript
javascript 获取浏览器版本
2015/01/21 Javascript
javascript表格隔行变色加鼠标移入移出及点击效果的方法
2015/04/10 Javascript
两款JS脚本判断手机浏览器类型跳转WAP手机网站
2015/10/16 Javascript
Javascript中匿名函数的调用与写法实例详解(多种)
2016/01/26 Javascript
使用Object.defineProperty实现简单的js双向绑定
2016/04/15 Javascript
Wireshark基本介绍和学习TCP三次握手
2016/08/15 Javascript
js实现手机拍照上传功能
2017/01/17 Javascript
BootStrap CSS全局样式和表格样式源码解析
2017/01/20 Javascript
Vue微信项目按需授权登录策略实践思路详解
2018/05/07 Javascript
vue实现滑动到底部加载更多效果
2020/10/27 Javascript
js针对图片加载失败的处理方法分析
2019/08/24 Javascript
React学习之受控组件与数据共享实例分析
2020/01/06 Javascript
Vue+Bootstrap实现简易学生管理系统
2021/02/09 Vue.js
[02:23]1个至宝=115个英雄特效 最“绿”至宝拉比克“魔导师密钥”登场
2018/12/29 DOTA
Python列表与元组的异同详解
2019/07/02 Python
python多任务之协程的使用详解
2019/08/26 Python
kafka监控获取指定topic的消息总量示例
2019/12/23 Python
关于matplotlib-legend 位置属性 loc 使用说明
2020/05/16 Python
手对手的教你用canvas画一个简单的海报的方法示例
2018/12/10 HTML / CSS
莫斯科绝对前卫最秘密的商店:SVMoscow
2017/10/23 全球购物
泰国第一在线超市:Tops
2021/02/13 全球购物
知识就是力量演讲稿
2014/09/13 职场文书
基层党员群众路线整改措施及努力方向
2014/10/28 职场文书
迎新生欢迎词
2015/01/23 职场文书
护士个人年度总结范文
2015/02/13 职场文书