nginx -s reload 但是新配置经常不生效,可能会有哪些原因呢?

2018-12-27 02:56:01 +08:00
 Livid
16479 次点击
所在节点    NGINX
29 条回复
Trim21
2018-12-27 03:26:49 +08:00
遇到过几次, 是有配置写错了, 但是 nginx -s reload 的时候没有把错误报出来. 手动关闭 nginx 再启动的时候才看到报错信息.
ericls
2018-12-27 03:28:12 +08:00
@Trim21 先 nginx -t
MrGba2z
2018-12-27 03:40:36 +08:00
先用-t 测试下配置文件

-s 失败就会继续用老的
Showfom
2018-12-27 03:47:04 +08:00
可能当前进程太多了导致没 reload 上吧,试试 force-reload

systemctl force-reload nginx
ericFork
2018-12-27 05:28:52 +08:00
看看是不是有一些 worker 仍然还在处理当前未完请求( shutting down 状态)
Actrace
2018-12-27 07:19:55 +08:00
挂了第三方模块无法结束进程或者是当前进程尚未结束。
nginx -s reload 是平滑重启,不会强制结束正在工作的连接,需要等所有连接都结束才会重启。
Cbdy
2018-12-27 07:32:56 +08:00
有的操作要重启才能生效
quqiuzhu
2018-12-27 08:30:13 +08:00
没有 sudo 么
raycloud
2018-12-27 08:56:41 +08:00
跟配置类型有关吧,之前遇到过某个配置必须重启才生效,忘记是哪个了
ihipop
2018-12-27 09:01:42 +08:00
以前遇到过,新增端口监听,域名绑定新虚拟主机之类的,需要完整重启,看什么类型的操作,不是所有的都可以 reload 加载
aniua
2018-12-27 09:01:52 +08:00
-s reload 类似于 apache 的 graceful。
配置文件错误会报错,旧的 worker 还是一样跑,就像没 reload 一样。
正确的话就会开新 worker,把新的请求给到新 worker,旧的 worker 不再接收新连接,等所有连接结束后旧的 worker 会退出。
如果配置没有生效说明你可能是通过未 reload 前已经保持的长连接发起的请求。
0312birdzhang
2018-12-27 09:03:22 +08:00
pid 丢了?
linchengzzz
2018-12-27 09:07:08 +08:00
先 nginx -t 查看配置文件,等 配置文件 successful 之后 再 nginx -s reload
Taosky
2018-12-27 09:14:22 +08:00
证书好像要 force-reload
ooeyunarika
2018-12-27 09:19:09 +08:00
旧的 worker 进程还在处理请求,有些第三方模块会导致旧的 worker 挂起甚至僵尸,回收不了,还有就是 nginx -t 先检查配置再 reload
kernel
2018-12-27 09:29:03 +08:00
reload 不会打印错误,而是静默失败,这个太坑爹了
kran
2018-12-27 09:30:13 +08:00
配置文件正确也会有这种情况,遇到了只好重启,不清楚原因
mywaiting
2018-12-27 09:30:32 +08:00
每次 nginx reload 记得这样敲命令,反正我觉得这是 nginx reload 的最佳实践了

sudo nginx -t && sudo nginx -s reload && sudo tail -f /var/log/nginx/error.log

可以直接搞个命令的 alias,不过一定记得这样敲
he583899772
2018-12-27 09:42:14 +08:00
配置有错误,看不到错误吧
virusdefender
2018-12-27 09:57:22 +08:00
reload 的时候得所有的连接都断开,老连接老配置,新连接才是新配置

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/521361

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX