nginx HTTP500类型错误码出现的原因以及分析

HTTP500类型错误码出现的原因以及分析

image.png

出现500类型错误问题的时候可以从3个方向来发现问题。

  1. 客户端

为什么要考虑客户端问题?如果报的错误是501错误,那么有一种可能是客户端的http请求method是nginx无法识别的类型,那么这种情况下会报501错误。

当然,这种情况概率很小,基本不会遇到。

还有一种情况是我们自己为了限制http请求的方法,手动修改nginx配置返回501,这样,当客户端使用我们限定之外的method进行请求时,就会收到501错误码。

配置方法如下:本例中我们只允许GET和HEAD以及POST类型的请求,其他类型将会收到501错误

image.jpeg

2.上游

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别考虑了,基本不会出现。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。