一、背景测试人员突然向我反?。迪呱系慕涌诜梦什涣耍祷?04了 。确认问题确实存在,在查找原因的过程中接口恢复正常 。感觉这个问题还是挺有意思,所以记录下来 。二、404状态码404NotFo一、背景
测试人员突然向我反?。迪呱系慕涌诜梦什涣?,返回 404 了 。确认问题确实存在,在查找原因的过程中接口恢复正常 。感觉这个问题还是挺有意思 , 所以记录下来 。
二、404 状态码
404 Not Found,一般情况都是指请求服务器上没有的资源
三、解决问题的过程
1.首先想到的是,服务器上的接口文件没了,登进去查看文件是正常的
2.考虑是否是 nginx 的配置更改导致访问不到,查看了下也是正常
3.接口又恢复正常,考虑是不是公司网络调整导致的,问了问运维网络也没有任何调整
4.查看 nginx 上面的日志发现确实请求到了服务器上 , 并且返回了 404
查到这里之后就隐约感觉到可能要涨见识了
5.接下来查看了 nginx 的错误日志(error.log),看到频繁报以下的报错
18522#0: *5382085 recv() failed (104: Connection reset by peer) while reading response header from upstream
6.根据这个报错查找网上资料,说是由于 php 的运行时间超过 php-fpm 设置的超时时间(request_terminate_timeout)会提示这个错误
7.将 request_terminate_timeout 设置值增大,重启 php-fpm,验证问题解决
四、写文档真有用
1.之前的解决过程就是如第三步所示,但是在记录问题的时候突然思考这种情况不应该报 502 的错误么……
2.在测试环境进行验证下,写个接口 , 里面 sleep(50),在浏览器中访问下,果然如预期返回了 502……
3. ……….
4.继续查找之前的 error.log 日志,发现还有以下的报错
18523#0: *5381683 open() “/var/www/html/50x.html” failed (2: No such file or directory)
5.看了下 nginx.conf,找到以下配置
error_page 500 502 503 504 /var/www/html/50x.html;
【接口404问题解决过程 接口问题及解决方法】6.在测试环境验证了下,出现了预期的 404,大功告成 。