Nginx报502错误怎么办_Nginx报502 Bad Gateway错误解决教程

Linux教程 pcbiji 3905浏览 0评论

最近,电脑笔记网在查看网站日志的时候发现有不少 502 错误,我也看到有不少小伙伴在询问 Nginx 报 502 错误怎么办,这个问题前辈们已经总结过很多方面,我们今天再稍微整理下,有需要的小伙伴可以来看看这篇 Nginx 报 502 Bad Gateway 错误解决教程,看看能不能帮你解决问题。

Nginx 报 502 Bad Gateway 错误解决教程

Nginx 报 502 Bad Gateway 错误解决教程

首先,我们要搞清楚 http(s) 的请求流程,一般情况下,提交请求之后,Nginx 会直接把请求转交给 php-fpm,而 php-fpm 再分配 php-cgi 进程来处理相关的请求,然后再依次返回,最后由 nginx 把结果反馈给客户端浏览器。Nginx 报 502 Bad Gateway 错误就是 FastCGI 遇到了问题,我们需要逐个来排查。

先看看 Linux 服务器资源是否足够,很多前辈们都没有提及这点,有些时候 Nginx 报 502 Bad Gateway 错误就是由于服务器的 CPU 和内存资源不够导致的,这个升级服务器就好了。

接着排查 PHP FastCGI 进程数量是否够用,可以使用下列代码:

netstat -anpo | grep "php-cgi"| wc -l

如果实际使用的“FastCGI 进程数”接近预设的“FastCGI 进程数”,那么,说明“FastCGI 进程数”不够用,需要增大,需要调整 max_children 的值。

查看 PHP 程序的执行时间是否超过了 Nginx 的等待时间,可以增加 nginx.conf 配置文件中 FastCGI 的 timeout 时间,例如:

fastcgi_connect_timeout 300;
fastcgi_send_timeout 300;
fastcgi_read_timeout 300;

还要修改 php.ini 中的 memory_limit=64M,重启 Nginx,看问题是否解决。

基本上需要排查的地方就是这几处,其它还有个“request_terminate_timeout”的值,只有在服务器资源特别丰富的时候,建议大家将其设为“0”,其它就不做处理了。上面提到的“max_children”的值也不是越大越好,要看服务器内存资源的,一般每个占用在 20MB,修改时别把内存用超了。

以上这些内容就是 Nginx 报 502 Bad Gateway 错误解决教程,有需要知道 Nginx 报 502 错误怎么办的小伙伴可以来对照着教程操作一下,希望我们的分享会对大家有一些帮助。

转载请注明:电脑笔记网 » Nginx报502错误怎么办_Nginx报502 Bad Gateway错误解决教程

发表我的评论
取消评论

表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址