小知识:图文详解Nginx版本平滑升级方案

背景:

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

nginx平滑升级方案

1、案例采用版本介绍

旧版本 nginx-1.12.2.tar.gz

新版本 nginx-1.20.1.tar.gz

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

%小知识:图文详解Nginx版本平滑升级方案-猿站网-插图 %小知识:图文详解Nginx版本平滑升级方案-1猿站网-插图

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

%小知识:图文详解Nginx版本平滑升级方案-2猿站网-插图

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

?
1
2
3
./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版本平滑升级方案-3猿站网-插图

5、平滑升级

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

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

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

?
1
2
kill -usr2 38323(旧进程pid为38323)
ps -ef |grep nginx

%小知识:图文详解Nginx版本平滑升级方案-4猿站网-插图

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

?
1
2
kill –winch 38323 (旧进程pid为38323)
ps -ef |grep nginx

%小知识:图文详解Nginx版本平滑升级方案-5猿站网-插图

检查此时版本

?
1
sbin/nginx -v

%小知识:图文详解Nginx版本平滑升级方案-6猿站网-插图

已平滑升级成功。

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

?
1
kill –quit 38323

回退步骤

关于回退操作分为两类:

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

?
1
2
3
4
5
6
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进程

?
1
kill -hup 旧masterpid

%小知识:图文详解Nginx版本平滑升级方案-7猿站网-插图

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

?
1
2
3
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版本平滑升级方案-8猿站网-插图

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

?
1
sbin/nginx -v

%小知识:图文详解Nginx版本平滑升级方案-9猿站网-插图

总结

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

原文链接:https://www.cnblogs.com/liuxc83/p/15241954.html

声明: 猿站网有关资源均来自网络搜集与网友提供,任何涉及商业盈利目的的均不得使用,否则产生的一切后果将由您自己承担! 本平台资源仅供个人学习交流、测试使用 所有内容请在下载后24小时内删除,制止非法恶意传播,不对任何下载或转载者造成的危害负任何法律责任!也请大家支持、购置正版! 。本站一律禁止以任何方式发布或转载任何违法的相关信息访客发现请向站长举报,会员发帖仅代表会员个人观点,并不代表本站赞同其观点和对其真实性负责。本网站的资源部分来源于网络,如有侵权烦请发送邮件至:2697268773@qq.com进行处理。
建站知识

小知识:Nginx缓存设置案例详解

2023-3-23 1:43:08

建站知识

小知识:谈一谈Linux系统重要的子目录问题

2023-3-23 1:55:58

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索