news 2026/4/28 1:37:52

Nginx的平滑升级

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Nginx的平滑升级

1.什么叫作Nginx的平滑升级?

在不停止Nginx服务,不中断用户网站的访问,不丢请求,浏览器不会报错502/404的前提下把旧版本的Nginx,替换成新版本Nginx,全程网站一直访问用户毫无感觉

2.信号参数

kill 命令 传输信号给进程

kill不仅仅可以杀死进程,其底层核心是给进程传递一个信号!因为kill -9kill -15使用较多,给大家带来错觉!

重点:
平滑升级
kill -USR2 pid
关闭master下面的所有work(子进程)
kill -WINCH pid
优雅的退出master
kill -QUIT pid

3.平滑升级

① 旧的先不停掉
② 新的又可以起来
③ 旧的和新的同时提供服务,旧的请求完成之后,就停掉旧进程
-USR2 平滑启动一个新的进程(平滑升级)
-WINCH 优雅的关闭子进程(Nginx分为master主进程以及worker子进程)
-QUIT 优雅关闭主进程

图解

第一步:编译安装新软件

注意:systemctl管理的nginx软件,没办法使用平滑升级,只有原生启动的Nginx才可以使用平滑升级

原生启动命令:cd /usr/local/nginx ; sbin/nginx

systemctl stop nginx

cd /usr/local/nginx/

sbin/nginx

ps -ef |grep nginx

tar xvf nginx-1.26.2.tar.gz

cd nginx-1.26.2

yum install openssl-devel -y

./configure --prefix=/usr/local/nginx --user=www --group=www --with-http_ssl_module --with-http_stub_status_module --with-http_realip_modul

make && make install

为什么一定要通过systemctl stop nginx?

答:systemd内部的管理机制没有完全支持Nginx平滑升级!!!

第二步:升级新版本,需要把软件的安装路径,指定到旧版本上

第三步:新旧版本同时运行(重点)

kill -USR2 旧的主进程号

第四步:查看旧的主进程号,并使用kill -WINCH 优雅的关闭的子进程,再关闭旧的主进程

kill -WINCH 旧的主进程号
kill -QUIT 旧的主进程号

-WINCH:代表关闭主进程下面的所有worker进程
-QUIT:代表优雅的退出master进程

小结:

工作中经常需要对旧版本程序进行升级操作,如MySQL、Nginx等等,但是Nginx本身有两种升级方式。

重装升级:需要停服,然后删原目录,重新编译安装!

平滑升级:不需要停服,直接在原有基础上进行升级

kill-USR2平滑升级

kill-WINCH移除当前进程的所有子进程(worker进程)

kill-QUIT代表优雅的关闭master主进程

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/28 1:33:23

Arm架构ID寄存器详解:特性识别与开发实践

1. Arm架构ID寄存器概述在Armv8/v9架构中,ID寄存器组是处理器特性识别的核心机制。这些只读寄存器通过标准化的位字段编码,向软件层暴露处理器的微架构实现细节。作为芯片设计者与软件开发者的契约,ID寄存器直接影响着操作系统启动、虚拟化配…

作者头像 李华
网站建设 2026/4/28 1:28:21

酷特AGI:从“自家试验田”到“全球输出”

近期,青岛酷特智能股份有限公司签约了一份意义深远的合同。这不是一份普通的商业合同,而是酷特AGI首次落地海外制造企业的“出征令”。 签约对象是一家美国知名家具连锁企业。合作内容清晰而笃定:用酷特AGI对其位于越南的工厂进行全面数智化改…

作者头像 李华
网站建设 2026/4/28 1:26:24

全国省市区 JSON数据

[{“label”:“北京”,“value”:“110000”,“children”:[{“label”:“北京市”,“value”:“110100”,“children”:[{“label”:“东城区”,“value”:“110101”},{“label”:“西城区”,“value”:“110102”},{“label”:“朝阳区”,“value”:“110105”},{“label”:…

作者头像 李华
网站建设 2026/4/28 1:20:22

Flask ORM 的利刃:精通 SQLAlchemy 声明式模型与核心 CRUD 操作

更多内容请见: 《Python Web项目集锦》 - 专栏介绍和目录 在 Flask 生态中,如果说路由和视图是应用的骨架,那么数据库就是它的血液。当业务从简单的“增删改查”演变为复杂的多表关联、事务控制与性能优化时,原生 SQL 往往会让代码变成难以维护的“字符串拼接地狱”。 在 …

作者头像 李华
网站建设 2026/4/28 1:19:23

期末破局:课程论文不用卷,虎贲等考 AI 一键生成稳拿高分

期中期末扎堆交课程论文,已经成为大学生最集中的学业压力。选题没思路、框架不标准、文献凑不齐、格式反复出错、重复率超标、AI 痕迹太重被打回…… 每一项都直接影响课程成绩与绩点。通用 AI 写出来的内容空洞、文献虚假、表达口语化,完全达不到学术要…

作者头像 李华
网站建设 2026/4/28 1:13:59

DenseGRPO:流匹配模型的密集奖励强化学习框架

1. 项目概述DenseGRPO是一种创新的强化学习框架,专门用于优化流匹配模型(如文本到图像生成系统)的对齐过程。传统强化学习方法在训练这类生成模型时面临一个根本性挑战:稀疏奖励问题。具体表现为仅在生成过程结束时提供单一反馈信…

作者头像 李华