Nginx reload 和 restart 的区别
  CHrprAHRJN8l 2023年11月02日 80 0

区别

  • reload:重新加载,reload会重新加载配置文件,Nginx服务不会中断。而且reload时会测试conf语法等,如果出错会rollback用上一次正确配置文件保持正常运行。
  • restart:重启(先stop后start),会重启Nginx服务。这个重启会造成服务一瞬间的中断,如果配置文件出错会导致服务启动失败,那就是更长时间的服务中断了。

所以,如果是线上的服务,修改的配置文件一定要备份。为了保证线上服务高可用,最好使用reload。

reload 实现过程

  1. 向Master进程 发送 HUP 信号(reload命令)
  2. Master进程 校验配置语法是否正确
  3. Master进程 打开新的监听端口(如果配置文件增加了新端口)
  4. Master进程 用新配置启动新的Worker子进程
  5. Master进程 向老Worker子进程发送QUIT 信号
  6. 老Woker进程 关闭监听句柄,处理完当前请求后结束进程

注意

reload 只是重新加载配置文件,不会清理nginx 的一些缓存,在有些需要清理缓存的场景需要restart ,例如upstream 后端配置的集群服务地址是域名而不是IP,当后端IP 变了,就需要清除该域名的解析缓存,此时需要重启而不是reload。


【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 2023年11月08日 0

暂无评论

推荐阅读
CHrprAHRJN8l