nginx -s reload 与 service nginx restart 的区别

6 篇文章 0 订阅

用了好几年的 Nginx,一致没有去深究他们两个之间的区别,一直以为都是重启命令,但是用的时候也是用 nginx -s reload 比较多。这一段时间正在用 Docker 折腾 Nginx,所以看了看 Nginx 的官方文档,忽然发现 nginx -s 命令的使用。

官方文档:https://nginx.org/en/docs/beginners_guide.html

1. 语法

nginx -s signal

signal 的值如下:
stop:fast shutdown,快速的停止 nginx
quit:graceful shutdown,不再接受新的请求,等正在处理的请求出完成后在进行停止(优雅的关闭)
reload:reloading the configuration file,重新加载配置文件
reopen:reopening the log files,重新写入日志文件

2. 两者区别

nginx -s reload (热重载):Nginx 服务不会终止,使用主进程检查配置,如果配置文件语法正确,则主进程会启动一个新的工作进程处理新来的请求。主进程发送消息给原来的工作进程,通知旧的进程不在接受请求,处理完现有的请求后退出(优雅退出);如果语法不正确,则继续使用旧的进程继续处理请求。

service nginx restart(重启):该条命令的执行过程如下,nginx -s stop -> nginx 先将 Nginx 快速的停止(等同于 service nginx stop),然后在执行启动命令(等同于 service nginx start),启动的时候会造成短暂的服务中断;如果配置文件语法错误,那问题就大了,有可能会造成更长时间的中断,有可能会造成很大的宕机。

3. 注意事项

  1. 如果是正式环境需要修改配置文件时,先把原有的配置文件备份一下,然后在进行修改;修改完成后先通过 nginx -t 检查一下配置文件是否有错误,如果没有的话再进行 nginx -s reload 热加载.

  2. 如果要求停止 Nginx 或者是 释放 Nginx 资源时,我们才使用 service nginx stopservice nginx restart 命令,否则一般都是用 nginx -s reload

个人博客:http://roc.havemail.cn/archives/892.html

  • 7
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Roc.Chang

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值