nginx快速实现平滑版本升级

news/2025/10/22 0:30:28/文章来源:https://www.cnblogs.com/xieweikun/p/19156724

1、解压并编译新版的nginx

# 目前版本为1.18,解压一个1.21版本的nginx包
wget https://nginx.org/download/nginx-1.21.0.tar.gz
tar -zxf nginx-1.21.0.tar.gz
cd nginx-1.21.0/
[root@ubt-server nginx-1.21.0]# ls
auto  CHANGES  CHANGES.ru  conf  configure  contrib  html  LICENSE  man  README  src# 安装编译
[root@ubt-server sbin]# pwd
/usr/local/nginx/sbin[root@ubt-server sbin]# ./nginx -V           # 先找到之前使用的是什么参数去安装的
...
...
configure arguments: --prefix=/usr/local/nginx# 找到参数后返回新版nginx的目录
[root@ubt-server nginx-1.21.0]# ./configure --prefix=/usr/local/nginx          # 使用和上面一样的参数去编译
[root@ubt-server nginx-1.21.0]# make
[root@ubt-server nginx-1.21.0]# ls
auto  CHANGES  CHANGES.ru  conf  configure  contrib  html  LICENSE  Makefile  man  objs  README  src

2、备份老的二进制文件,将新的二进制文件替换上去

[root@ubt-server nginx-1.21.0]# mv /usr/local/nginx/sbin/nginx /usr/local/nginx/sbin/nginx.old.running
[root@ubt-server nginx-1.21.0]# cp objs/nginx /usr/local/nginx/sbin/nginx# 发送USER2的型号,启用新的主进程来接收新的连接
kill -USR2 `cat /usr/local/nginx/logs/nginx.pid`# 让老版nginx处理完进程后优雅退出
kill -WINCH `cat /usr/local/nginx/logs/nginx.pid.oldbin`

3、确认服务是否成功替换

# 确认新版nginx已经成功接替,访问您的nginx服务是否可以正常运行或显示`
[root@ubt-server nginx-1.21.0]# ps aux | grep nginx
root       20942  0.0  0.0   4616   356 ?        Ss   23:44   0:00 nginx: master process /usr/local/nginx/sbin/nginx
root       23618  0.0  0.1   4624  2880 ?        S    23:57   0:00 nginx: master process /usr/local/nginx/sbin/nginx
nobody     23619  0.0  0.1   5372  2856 ?        S    23:57   0:00 nginx: worker process
root       23622  0.0  0.1   6480  2324 pts/0    S+   23:57   0:00 grep --color=auto nginx# 若是您的服务正常运行,并可以正常显示就能将老进程关闭了
kill -QUIT `cat /usr/local/nginx/logs/nginx.pid.oldbin`
[root@ubt-server sbin]# ps aux | grep nginx
root       23618  0.0  0.1   4624  2880 ?        S    23:57   0:00 nginx: master process /usr/local/nginx/sbin/nginx
nobody     23619  0.0  0.1   5372  2856 ?        S    23:57   0:00 nginx: worker process
root       23634  0.0  0.1   6480  2320 pts/0    S+   23:58   0:00 grep --color=auto nginx# 再次确认版本号,去web界面上确认一次您的服务是否可以正常显示
[root@ubt-server nginx-1.21.0]# cd /usr/local/nginx/sbin/
[root@ubt-server sbin]# ./nginx -v        # 可见nginx版本已被替换
nginx version: nginx/1.21.0   

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/942794.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

基础的sql练习,全都理解你就是高手了!

以下sql我都是亲测:大多数用法都会在面试当中被问到,切记一步一个脚印的去实现,结果不重要,重要的是你的实现过程的想法,第一步做什么然后第二步做什么等具体的详细过程!(学东西不能贪多,慢慢来) 先从单表查询…

Luogu P11159 【MX-X6-T5】 再生 题解 [ 蓝 ] [ 前缀和 ] [ 组合计数 ]

再生 笑点解析:一开始乘法原理推错式子胡了个依赖链长种类数 \(\le \sqrt n\) 的做法上去。 有了 \(top\) 数组,显然可以求出每个点所处的长链。对于长链上的点,如果链长为 \(x\),那么这条链有 \((x - 1)!\) 种可能…

王浩宇 102500416

这个作业属于:https://edu.cnblogs.com/campus/fzu/gjyycx 这个作业的要求:https://edu.cnblogs.com/campus/fzu/gjyycx/homework/13570 学号:102500416 姓名:王浩宇 书本作业 第一题第二题第三题第四题第五题第六…

102500416 王浩宇

这个作业属于:https://edu.cnblogs.com/campus/fzu/gjyycx 这个作业的要求:https://edu.cnblogs.com/campus/fzu/gjyycx/homework/13570 学号:102500416 姓名:王浩宇 书本作业 第一题第二题第三题第四题第五题第六…

程序员修炼之路:从小工到专家 读书笔记 2

《程序员修炼之道:从小工到专家》读书笔记(补充篇) 重读《程序员修炼之道》,除了此前感悟的核心原则,书中 “破窗理论”“原型验证”“责任承诺” 等理念,更让我看清从 “完成代码” 到 “掌控开发” 的进阶细节…

程序员修炼之路:从小工到专家 读书笔记 3

《程序员修炼之道:从小工到专家》读书笔记(进阶篇) 三读《程序员修炼之道》,书中 “知识负债”“自动化思想”“沟通协作” 三大被忽略的理念,终于让我触摸到 “专家” 的核心特质 —— 不仅是技术能力的精进,更…

程序员修炼之道:从小工到专家 读书笔记 1

《程序员修炼之道:从小工到专家》读书笔记 翻开《程序员修炼之道:从小工到专家》,没有复杂的代码堆砌,却满是对程序员职业成长的深刻洞察。这本书更像一位资深前辈的经验分享,指引着开发者跳出 “代码搬运工” 的…

解答在同步以太坊事件数据时,如何保证后端服务在 API/RPC 不稳定情况下的可用性

我来详细解答在同步以太坊事件数据时,如何保证后端服务在 API/RPC 不稳定情况下的可用性: 1. 以太坊事件同步的挑战 事件同步的特点 package mainimport ("context""fmt""log""t…

中级问题

我来详细解答这些区块链和 Go 后端开发的问题: 18. Merkle Tree 在区块链中的作用 Merkle Tree 定义 Merkle Tree 是一种二叉树结构,用于高效验证大量数据的完整性。 在区块链中的作用 // 区块链中的 Merkle Tree 应…

20251021周二日记

20251021周二日记这阅读量是怎么回事?有熟人看到吗,哈喽啊/ 今日: 1.早上睡到十点多,紧急去实验室继续报账,填系统,这次应该差不多了。 2.中午统一定的袁记,简单吃完下午上课去,帮报信和写题,下课回549了。 h…

好想好想你

喝了四两酒喝的酒 一股子我们在机场喝的人参酒味 眼前画面一帧一帧 脑子好像灌了水银 身体不由自主 很想你 我要是现在死掉就好了 让我们的故事成为一个完美的童话

10.21日学习笔记

HBase 增量迁移:TB 级历史表 0 停机上云 场景 本地 2.3 TB 的 msg_his 表 → 阿里云 HBase 2.0(LTS 版),要求白天业务可读可写,只容忍 5 min 最终切换窗口。 方案选型 采用“Snapshot + Replication 双轨 + 增量校…

第1天(简单题 基础语法 数据类型、条件判断 、循环 循环嵌套、位运算, ASCII 码)

打卡第一天 做8道简单题找回一些手感 第五题的异或运算卡了很久,离散数学没学好...看了解题方法还是不会(不用数学的解题思路✔) 数据库原理两道题,现学MySQL半小时就放弃了^^ 今日耗时≈两小时 明天继续

24信计2班 17曾向嵩 pytorch读书报告

卷积神经网络(CNN)学习读书报告 ——基于B站《从LeNet到ResNet:CNN架构演进与核心原理》视频的深度解析 一、引言:学习背景与视频概况 在计算机视觉技术迅猛发展的当下,卷积神经网络(CNN)作为突破传统图像识别瓶…

Go 语言问题解释

我来为每个 Go 语言问题补充详细的文字解释: 1. Go 基本数据类型 - 文字解释 数值类型 Go 语言提供了丰富的数值类型,包括有符号和无符号整数、浮点数、复数等。这些类型的设计考虑了不同平台和性能需求:整数类型:…

Keil_v5的用法

1、包的管理本文来自博客园,作者:变秃了也就变强了,转载请注明原文链接:https://www.cnblogs.com/lichangyi/p/19156680

OI 笑传 #21

WorldendGirlfriendワールドエンドガールフレンド 今天是周天 VP 的洛谷的 S 模拟。 结果起晚了。。。十点才开题。打了 3h。 结果是 \(100+100+0+0=200\),T3 暴力没打,T4 啥也不会。大样例挺牛的,都过了就不会挂分…

[Tool] lsof: 列出打开的文件描述符

[Tool] lsof: 列出打开的文件描述符$(".postTitle2").removeClass("postTitle2").addClass("singleposttitle");目录1. 概述2. 前提条件3. 常用选项和用法4. 常用示例4.1 查看指定进程…