背景
下发配置文件后,测试域名返回结果不正确,而且请求日志也没有落在相对应的日志中,反而是落在default的日志中,说明配置文件没有生效。error log中也没有记录到错误日志。
nginx -s realod 不生效有很多原因。
1、语法异常,执行nginx -s reload后没有执行nginx -t检查语法
2、其他原因导致nginx -s reload错误
查看nginx进程的启动时间,nginx reload后worker进程没有重启。
strace nginx -s reload查看也没有报错。然后想到最近有更新nginx版本
,更新版本的话肯定需要重启master进程的,但是看master进程的时间,更新后并没有重启,说明更新版本有异常。现在的二进制文件是新的,但是master却依然是老版本的文件。
根本原因:在使用nginx -s reload的时候,新的二进制文件找不到对应的master进程,管控不到。所以新的配置文件不会生效。
解决方案:kill master进程,然后重新启动nginx