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

发布时间:2022-01-18 16:42:34 作者:iii
来源:亿速云 阅读:195

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

nginx平滑重启

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

平滑重启主要流程

nginx -s reload

kill -s gighup Nginx主进程号

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

图解

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

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

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

nginx平滑升级

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

平滑升级主要流程

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

kill -s SIGUSER2 nginx进程号

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

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

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

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

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

kill -s SIGWINCH 旧nginx进程号

kill -s SIGQUIT 旧nginx进程号
# 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平滑重启和平滑升级的方法是什么”这篇文章的所有内容,感谢各位的阅读!相信大家阅读完这篇文章都有很大的收获,小编每天都会为大家更新不同的知识,如果还想学习更多的知识,请关注亿速云行业资讯频道。

推荐阅读:
  1. Nginx版本平滑升级
  2. nginx信号量(平滑重启/升级/重读日志)

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

nginx

上一篇:数据仓库中的OLTP与OLAP查询是怎样的

下一篇:Windows中的Swapfile.sys指的是什么

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》