Nginx热部署

news2024/11/27 13:49:38

快捷查看指令 ctrl+f 进行搜索会直接定位到需要的知识点和命令讲解(如有不正确的地方欢迎各位小伙伴在评论区提意见,小编会及时修改)

Nginx热部署

首先来讲一下为什么要进行热部署
nginx 支持热加载 热部署 ,在不打断用户请求的情况下就可以更新版本

Nginx热部署的原因主要有以下几点:

  1. 当旧的nginx功能模块不足以支撑项目使用时,需要加载新的nginx到项目中
  2. 避免 downtime:传统的软件升级需要停止服务,进行升级后再重新启动服务,这个过程会造成服务停机,如果在高流量情况下停机,会影响用户体验和业务收益。
  3. 提升服务可用性和稳定性:Nginx热部署可以在不中断服务的情况下进行升级,可以有效减少服务宕机时间,提高业务的可用性和稳定性。
  4. 降低升级风险:热部署可以快速回滚到旧版本,降低升级风险。在升级过程中,如果出现了问题,可以很快地切回到旧版本,避免影响业务。
  5. 提高运维效率:热部署可以自动完成升级操作,减少人工干预,提高运维效率。同时,热部署也可以实现自动化部署和回滚。

Nginx热部署操作步骤

本次测试将2.3.1版本的Nginx更新为2.4.1版本

  1. 在旧nginx开启状态下,修改旧nginx的sbin下的命令名
[root@localhost sbin]# mv nginx nginx.old
  1. 重新编译不安装一个新的nginx,位置与旧的一致
    (安装nginx详情可查看Centos7安装配置nginx)
[root@localhost tengine-2.4.1]# ./configure --prefix=/tmp/tngx --with-http_ssl_module --with-http_flv_module --with-http_gzip_static_module --with-http_stub_status_module --with-threads --with-file-aio

[root@localhost tengine-2.4.1]# make 
  1. 将tengine-2.4.1包下的objs/nginx复制到旧nginx包下
cp tengine-2.4.1/objs/nginx /tmp/tngx/sbin/

在这里插入图片描述

  1. 发送USR2信号给nginx的master
查看master的进程
[root@localhost sbin]# ps -ef | grep 'nginx'

在这里插入图片描述

发送USR2信号
[root@localhost sbin]# kill -USR2 8930
再次查看
[root@localhost sbin]# ps -ef | grep ngi
此时热部署已经完成

在这里插入图片描述

  1. 给旧的master发送WINCH信号,使其原本工作进程退出
[root@localhost sbin]# kill -WINCH 8930

在这里插入图片描述

  1. 关闭旧的master进程
[root@localhost sbin]# kill -9 8930

在这里插入图片描述

补充一下:可能有的小伙伴看到这里会疑惑,我现在相当于有两个命令一个是nginx(新版本)和一个nginx.old(老版本),而此时正在运行的nginx进程就可以使用nginx(新版本) 进行关闭,然后再进行使用,间接地完成了版本的更新(老版本的nginx.old可以删除也可以保留)

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

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

相关文章

什么是高层设计 - 学习系统设计

高层设计或HLD指的是整体系统设计,包括系统架构和设计的描述,是一种通用的系统设计,包括: •系统架构•数据库设计•对系统、服务、平台和模块之间关系的简要描述。 高层设计或HLD也被称为宏观级别设计。 什么是高层设计文档&…

中国信通院发布《中国算力发展指数白皮书》(2023)

加gzh“大数据食铁兽”,回复“20231129”,获取材料完整版 导读 2023 年白皮书在 2022 年的基础上,加强了全球和我国算力发展的研究,客观评估我国整体、各省份及各城市现阶段的算力发展水平进一步给出我国算力二十强市榜单&…

什么是线程安全问题?如何确保线程安全?进来看看就明白了!!

🌈🌈🌈今天给大家分享的是:什么是线程安全,在程序中多线程并发执行的时候,是否会产生线程不安全问题,以及如何解决线程不安全问题。 清风的CSDN博客 🛩️🛩️🛩️希望我的…

小红书广告投放形式有哪些,软文形式特点是什么?

现在广告的形式多种多样,针对不同的投放形式,面对的用户群体和投放渠道也都不一样。在平台上进行广告投放,可以快速提升品牌曝光和销量转化。本次将围绕小红书广告投放形式有哪些,软文形式特点是什么展开讨论,希望能对…

今日份推荐、无广告、超实用的5款软件

​ 大家好,我又来啦,今天给大家带来的几款软件,共同特点都是无广告、超实用,大家观看完可以自行搜索下载哦。 1.键盘锁定工具——Iwck ​ Iwck是一款简单实用的键盘锁定工具,可以让你在需要的时候暂时停止键盘的所有…

【23真题】官方出错题,复试不算分!信号学不好,就考它!

今天分享的是23年广西民族大学861的信号与系统试题及解析。广西民族我之前做择校分析的时候说过,考生进入复试之后,专业课会扣掉!不算分,只对公共课排名!而且专业课简单,但是官方今年出了好几道错题&#x…

陪诊系统:基于自然语言处理的患者沟通创新

医疗领域的数字化转型正日益引入创新技术,其中基于自然语言处理(NLP)的陪诊系统成为提升患者沟通的一项关键技术。本文将深入研究这一领域,介绍陪诊系统如何借助NLP实现患者沟通的创新,并提供一个简单的Python代码示例…

CNAS认可是什么?CNAS软件测试报告如何获取?

一、CNAS认可是什么?   CNAS认可是指中国合格评定国家认可委员会的认可程序。CNAS是中国最高级别的认可机构,负责审核和认可符合国家标准的实验室、检测机构和认证机构。通过CNAS认可,机构可以获得国际公认的认可证书,证明其测试结果和认证…

【华为数通HCIP | 网络工程师】821刷题日记-BFD和VRRP 及重点(1)

个人名片: 🐼作者简介:一名大三在校生,喜欢AI编程🎋 🐻‍❄️个人主页🥇:落798. 🐼个人WeChat:hmmwx53 🕊️系列专栏:🖼️…

人工智能_机器学习055_拉格朗日乘子法_拉格朗日乘数法的原理介绍_流程详解---人工智能工作笔记0095

上一节我们已经演示了把SVM支持向量机的分割线,画出来,并且,我们也推导了SVM支持向量机的公式,但是支持向量机的公式,是带有条件的对吧,带有条件就算起来比较麻烦 可以看到现在我们要可以用,拉格朗日乘数法,将 有等式约束条件的优化问题 转换为 无约束优化问题,把有条件转换为…

Vue diff 算法探秘:如何实现快速渲染

🤍 前端开发工程师(主业)、技术博主(副业)、已过CET6 🍨 阿珊和她的猫_CSDN个人主页 🕠 牛客高级专题作者、在牛客打造高质量专栏《前端面试必备》 🍚 蓝桥云课签约作者、已在蓝桥云…

During handling of the above exception, another exception occurred解决方案

During handling of the above exception, another exception occurred解决方案 前言解决方案总结 前言 今天在写python读取图片中的内容的脚本的时候,常用的图像处理库包括Pillow和OpenCV。以下是使用Pillow库读取图片中的计算公式的示例代码: from P…

cocos creator-碰撞检测

碰撞检测文档 刚体自行选择,刚体正常设置分组、tag,tag用于区分是哪个物体被碰撞了 正常在一个node下挂载脚本就行 注意:Builtin 2D 物理模块只会发送 BEGIN_CONTACT 和 END_CONTACT 回调消息。ccclass(TestContactCallBack) export class …

C语言--根据成绩判断等级

一.题目描述 如果学生的成绩小于60分&#xff0c;那么输出不及格 如果学生的成绩大于60分小于85分&#xff0c;那么输出良好 如果学生的成绩大于85分&#xff0c;那么输出优秀 二.代码实现 #define _CRT_SECURE_NO_WARNINGS #include<stdio.h> //根据成绩打印等级 //scor…

哪里可了解低代码数据可视化开发平台?

如果想要提升办公协作效率&#xff0c;可以用什么样的平台助力实现这一目标&#xff1f;其实&#xff0c;随着市场竞争的日益加剧&#xff0c;低代码技术平台的应用价值也逐渐凸显出来&#xff0c;其可视化、易操作、灵活便利等优势特点&#xff0c;是很多中大型企业倾向于使用…

3 测试驱动的Spring Boot应用程序开发数据层示例

文章目录 用户故事数据模型选择数据库SQL与NoSQLH2、Hibernate和JPA Spring Boot Data JPA依赖关系和自动配置Spring Data JPA技术栈数据源&#xff08;自动&#xff09;配置 实体存储库存储User和ChallengeAttempt显示最近的ChallengeAttempt服务层控制器层用户界面 小结 文章…

教学音频怎么扫码播放?音频在线生成二维码的教学

教学音频文件怎么做成扫码播放&#xff1f;现在将英语听力、教学内容做成音频是很常见的一种形式&#xff0c;为了更好的让他人获取内容&#xff0c;很多人会将音频生成二维码之后分享给他人&#xff0c;扫码就可以听音频。那么当我们有多个音频需要同时放入一个二维码中&#…

SQL server-excel数据追加到表

参考文章&#xff1a;SQL server 2019 从Excel导入数据_mssql2019 导入excel数据-CSDN博客 将excel数据导入到SQL server数据库的详细过程 注意&#xff1a;第一行数据默认为数据库表中的字段&#xff0c;所以这个必须要有&#xff0c;否则无法映射导入 问题1&#xff1a;ADD…

linux磁盘已满,查看哪个文件占用多

使用df -h查看磁盘空间占用情况 使用sudo du -s -h /* | sort -nr命令查看那个目录占用空间大 然后那个目录占用多 再通过sudo du -s -h /var/* | sort -nr 一层层排查&#xff0c;找到占用文件多的地方 如果通过以上方法没有找到问题所在&#xff0c;那么可以使用 lsof |…

PHP:js中怎么使用PHP变量,php变量为数组时的处理

方法一&#xff1a;使用内嵌 PHP 脚本标记 1、简单的拼接 使用内嵌的 PHP 脚本标记 <?php ?> 将 PHP 变量 $phpVariable 的值嵌入到 JavaScript 代码中。 <?php $phpVariable "Hello, World!"; ?><script> // 将 PHP 变量的值传递给 JavaS…