nginx平滑重启和平滑升级的图文教程
目录
- nginx平滑重启
- 平滑重启主要流程
- 图解
- nginx平滑升级
- 平滑升级主要流程
- 图解
- 总结
nginx平滑重启 如果修改了nginx的配置文件(nginx.conf),想要重启nginx,可以发送系统信号给Nginx的master进程来进行。
平滑重启主要流程
- 向master进程发送HUB信号(reload命令)
nginx -s reloadkill -s gighup Nginx主进程号
- master进程检查配置语法是否正确
- 如果配置文件或者语法错误会出现下图代码
![nginx平滑重启和平滑升级的图文教程](https://img.it610.com/image/info11/e3cce6c8ee3b40ec921e832f9ad10d94.jpg)
文章图片
- master打开监听端口
- master进程使用新的配置文件启动新的worker子进程
- 【nginx平滑重启和平滑升级的图文教程】master进程向老的worker子进程发送quit信号
- 旧的worker子进程关闭监听,处理完当前连接后关闭进程
图解
![nginx平滑重启和平滑升级的图文教程](https://img.it610.com/image/info11/d30620ff79e047929f99b69c45c5eb5b.jpg)
文章图片
当nginx接收到系统的SIGHUP信号,nginx会尝试解析配置文件(如果指定了配置文件,就使用指定的配置文件,否则就使用默认的),如果解析配置文件成功,(成功表示配置文件没有错误),就会应用新的配置文件。之后nginx启动新的worker子进程,然后等待旧的worker子进程完成所属任务后,关闭旧的worker子进程。如果遇到旧的worker子进程正在进行任务,那么旧的子进程继续为当前连接的客户提供服务,当所有的客户端服务完成后,旧的worker子进程被关闭。
如果新的配置文件应用失败,那么nginx将继续使用旧的配置文件运行。
nginx平滑升级 当需要将正在运行的nginx升级、添加/删除服务器模块时,可以在不中断服务的情况下使用新版本、重编译的nginx可执行程序替换旧版本的可执行程序
平滑升级主要流程
- 将旧的nginx配置文件替换为新的nginx配置文件(如果基础目录结构需要特殊操作)
- 向master进程发送USER2信号
kill -s SIGUSER2 nginx进程号
![nginx平滑重启和平滑升级的图文教程](https://img.it610.com/image/info11/7400ddb4a451493cbf33ac508055c2a8.jpg)
文章图片
- master进程修改pid文件,加后缀.oldbin执行新的配置文件
![nginx平滑重启和平滑升级的图文教程](https://img.it610.com/image/info11/836fbd5bce214af0987a71e86d4cb81d.jpg)
文章图片
- master进程使用新的nginx配置文件启动新的master进程
- 验证新功能是否满足功能预期,如果满足就向旧的master进程发送WINCH信号,旧的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平滑重启和平滑升级的图文教程](https://img.it610.com/image/info11/b4463d152a0f45dfa5b7002f6253c8ae.jpg)
文章图片
![nginx平滑重启和平滑升级的图文教程](https://img.it610.com/image/info11/687e41dd22d045cbab489865b70a9661.jpg)
文章图片
总结 到此这篇关于nginx平滑重启和平滑升级的文章就介绍到这了,更多相关nginx平滑重启和平滑升级内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
推荐阅读
- Shell脚本一键安装Nginx服务自定义Nginx版本
- Nginx服务LNMP之WordPress部署流程步骤
- Nginx服务安装及软件升级
- 小白也可以完成的0基础部署Nginx服务
- Nginx反向代理与负载均衡概念理解及模块使用
- 详解nginx|详解nginx location指令
- 网关中间件-Nginx(一)
- 『现学现忘』Docker基础|『现学现忘』Docker基础 — 22、使用Docker安装Nginx
- 怎么做|怎么做 HDFS 的原地平滑缩容()
- Nginx 详细教程