HTTP500类型错误码出现的原因以及分析
image.png出现500类型错误问题的时候可以从3个方向来发现问题。
- 客户端
为什么要考虑客户端问题?如果报的错误是501错误,那么有一种可能是客户端的http请求method是nginx无法识别的类型,那么这种情况下会报501错误。
当然,这种情况概率很小,基本不会遇到。
还有一种情况是我们自己为了限制http请求的方法,手动修改nginx配置返回501,这样,当客户端使用我们限定之外的method进行请求时,就会收到501错误码。
配置方法如下:本例中我们只允许GET和HEAD以及POST类型的请求,其他类型将会收到501错误
image.jpeg2.上游
PHP之类的CGI程序出现错误,例如PHP-FPM执行超时,这时nginx会返回502错误,这个502其实是php-fpm间接报给nginx的。接下来的思路就是看PHP-FPM为什么会执行超时,可以继续查看上游
mysql或者redis或者调用的API是否出现了超时,再或者有死循环之类的错误,一一排查后能解决相应错误。
3.nginx本身
如果nginx本身出现问题,例如配置问题,如果NGINX未在自己配置的规定时间内收到上游响应则会报504错误
至于503错误一般是nginx负载过高导致的,对于流量较小的网站来说,也算是一件好事。
505 错误很明显,客户端的http版本不受nginx支持
总结一下,501看客户端 502看上游,504先看nginx本身的配置,然后还得看上游,上游不能太慢啊。503考虑升级服务器或者限流。505别考虑了,基本不会出现。
网友评论