nginx 一个页面中,404 和 200交替出现
一个页面时候,一会儿正常200 一会儿404
个人总结:
第一种原因:是因为改了配置文件,然后重启NGINX 但是NGINX的子进程没有完全清空
导致后面 旧进程的配置还没有更新,还在用旧的配置,重启NGINX的时候,这时候用的是新配置
第二种原因(我遇到的):
原因就是,nginx重启不合理导致的,通过下图发现 NGINX 有三个master进程,这三个master进程里面,只有一个是因为重启而得到的新配置,其他的两个都是旧配置
下面开始讲述我的第一步,查看所有的NGINX进程
发现有三个master,分别进程号为:19126,26222,26237,这很明显是不对的。
然后我kill一个master,可以看到我已经kill 掉了19126主进程 master,居然还有两个master进程存在
kill后的结果图
然后我再试着去重启NGINX,发现旧的进程号26222,26237,仍然存在
可以看到,旧的master进程就是后面的两个(26222,26237 进程号)
这时候请求页面,部分请求去了这两个进程(旧进程)
部分请求去了新的进程(19718)
所以才会有时候 404 有时候200的执行
后面我直接执行以下命令,把所有的NGINX进程全部清空
killall nginx
把所有的NGINX进程清空,清得干干净净
然后重启NGINX
service nginx start
ps -ef | grep nginx
得到以下结果,现在所有的进程都是最新配置
再疯狂请求接口,再也没404的情况