【随笔】nginx配置文件修改后不生效的问题
前置情景:
1. 本次修改配置文件不生效之前已启动过nginx
2. 本次修改后的server配置和原来配置使用同样的 'listen' 与 'server_name'
3. 并且修改配置文件后使用命令直接启动
linux: ./nginx
windows:start nginx / nginx.exe
原因:
系统中使用之前配置文件的nginx进程未被杀死,导致之后新开启的监听 同样域名和端口 的nginx进程无效
解决方案:
windows:打开任务管理器,按名称排序,关闭所有nginx进程,确认新配置文件内容无误后执行命令启动nginx
linux:执行 killall nginx 结束所有nginx进程,执行 ss -ntlp | grep nginx 查看是否残留,确认新配置文件内容无误后执行命令启动nginx
总结:
nginx配置文件可以通过 'worker_processes' 指定支持的进程数量,默认为1,可能被修改
当前系统中已启动过nginx时,修改配置文件后建议使用 nginx -s reload 重启nginx,否则很容易导致配置不生效
排查问题要仔细,不要着急,很多看起来很诡异的现象是由于自己知识储备欠缺或一时愚蠢导致的,冷静下来仔细分析往往能比手忙脚乱更早解决问题。