目录Nginx平滑重启平滑重启主要流程图解nginx平滑升级平滑升级主要流程图解总结nginx平滑重启 如果修改了nginx的配置文件(nginx.conf),想要重启nginx,可
如果修改了nginx的配置文件(nginx.conf),想要重启nginx,可以发送系统信号给Nginx的master进程来进行。
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可执行程序替换旧版本的可执行程序
使用新的可执行程序替换旧的可执行程序,替换之前最好备份一下旧的配置文件
kill -s SIGUSER2 nginx进程号
旧版本nginx 的master进程将nginx.pid重命名为nginx.oldbin
执行新的配置文件,依次启动新的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平滑重启和平滑升级的文章就介绍到这了,更多相关nginx平滑重启和平滑升级内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!
--结束END--
本文标题: nginx平滑重启和平滑升级的图文教程
本文链接: https://www.lsjlt.com/news/162861.html(转载时请注明来源链接)
有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341
下载Word文档到电脑,方便收藏和打印~
2024-04-18
2024-04-17
2024-04-11
2024-04-08
2024-04-08
2024-04-03
2024-03-15
2024-03-15
2024-03-11
2024-03-08
回答
回答
回答
回答
回答
回答
回答
回答
回答
回答
0