我的编程空间,编程开发者的网络收藏夹
学习永远不晚

nginx平滑重启和平滑升级的图文教程

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

nginx平滑重启和平滑升级的图文教程

nginx平滑重启

如果修改了nginx的配置文件(nginx.conf),想要重启nginx,可以发送系统信号给Nginx的master进程来进行。

平滑重启主要流程

  • 向master进程发送HUB信号(reload命令)
nginx -s reload

kill -s gighup Nginx主进程号
  • master进程检查配置语法是否正确

    • 如果配置文件或者语法错误会出现下图代码

  • master打开监听端口

  • master进程使用新的配置文件启动新的worker子进程

  • master进程向老的worker子进程发送quit信号

  • 旧的worker子进程关闭监听,处理完当前连接后关闭进程

图解

当nginx接收到系统的SIGHUP信号,nginx会尝试解析配置文件(如果指定了配置文件,就使用指定的配置文件,否则就使用默认的),如果解析配置文件成功,(成功表示配置文件没有错误),就会应用新的配置文件。之后nginx启动新的worker子进程,然后等待旧的worker子进程完成所属任务后,关闭旧的worker子进程。如果遇到旧的worker子进程正在进行任务,那么旧的子进程继续为当前连接的客户提供服务,当所有的客户端服务完成后,旧的worker子进程被关闭。

如果新的配置文件应用失败,那么nginx将继续使用旧的配置文件运行。

nginx平滑升级

当需要将正在运行的nginx升级、添加/删除服务器模块时,可以在不中断服务的情况下使用新版本、重编译的nginx可执行程序替换旧版本的可执行程序

平滑升级主要流程

  • 将旧的nginx配置文件替换为新的nginx配置文件(如果基础目录结构需要特殊操作)

使用新的可执行程序替换旧的可执行程序,替换之前最好备份一下旧的配置文件

  • 向master进程发送USER2信号
kill -s SIGUSER2 nginx进程号

  • master进程修改pid文件,加后缀.oldbin执行新的配置文件

旧版本nginx 的master进程将nginx.pid重命名为nginx.oldbin

  • master进程使用新的nginx配置文件启动新的master进程

执行新的配置文件,依次启动新的master进程和对应的worker子进程,此时新的nginx进程和旧的nginx进程同时运行,共同处理输入的请求

  • 验证新功能是否满足功能预期,如果满足就向旧的master进程发送WINCH信号,旧的worker子进程退出

运行一段时间后,确保新配置文件生效,然后使用SIGWINCH向旧的master进程发送信号,逐步停止旧worker子进程

kill -s SIGWINCH 旧nginx进程号

kill -s SIGQUIT 旧nginx进程号
  • 这是决定使用新版本还是旧版本,如果使用新版本则继续发送SIGWINCH信号到旧的master中,如果需要回滚,则发送一下命令
# nginx将不在重载配置文件的情况下启动他的worker子进程
kill -s SIGHUP 旧的master号 

# nginx关闭新配置文件的worker子进程
kill  -s SIGQUIT 新的master号

# nginx强制退出新的master主进程
kill -s SIGTERM 新的master号

新的master退出后,旧的master会议chu会移除.oldbin后缀的.pid文件,这样,回滚就完成了,如果尝试升级成功后,而且也希望保留新的服务器时,可以发送quit信号给旧的master,使其退出而只留下新的服务器运行

图解

总结

到此这篇关于nginx平滑重启和平滑升级的文章就介绍到这了,更多相关nginx平滑重启和平滑升级内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

nginx平滑重启和平滑升级的图文教程

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

nginx平滑重启和平滑升级的方法是什么

今天小编给大家分享一下nginx平滑重启和平滑升级的方法是什么的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。nginx平滑重
2023-06-26

nginx 平滑重启与升级的实现方法分享

有时候我们需要平滑重启nginx服务,防止出现问题,这里简单的总结,方便需要的朋友如果改变了Nginx的配置文件(nginx.conf),想重启Nginx,同样可以通过发送系统信号给Nginx主进程的方式来进行.不过,重启之前,要确认Ngi
2023-06-05

编程热搜

目录