Nginx 502 bad gateway错误解决方法

使用Nginx作为Web服务器的时候,你或多或少都会遇到Nginx 502 bad gateway的错误,造成这种错误的原因有很多。下面我们来一一解析。

一、查看php-cgi是否在运行

有时候由于网站流量过大或者其它原因,导致php-cgi直接down掉,所以我们得看php-cgi是否在运行。执行如下命令:

  1. ps -A | grep php5-cgi

如果没有运行,手动启动

  1. /etc/init.d/php_cgi start

如果你发现php-cgi不明原因有时候down掉,可以使用下面的脚本临时解决这个问题,添加到cronjob。

  1. if ps aux | grep 'php5-cgi' | grep -v grep  > /dev/null ; then
  2.         echo "PHP-cgi is runnning !"     
  3. else
  4.         echo "PHP-cgi is down. Starting over..."
  5.         /etc/init.d/php-fcgi start
  6. fi

二、fastcgi进程数不够用、php执行时间长的原因

fastcgi进程数可以修改php-fpm.conf中的max_children的数值,高峰时php-cgi耗掉的最大内存为20M,请根据自己的内存情况计算了。
限制php执行时间可以在php-fpm.conf中的request_terminate_timeout设置,这是为了防止php程序的bug导致php-cgi假死。

三、FastCGI执行时间过长

根据实际情况调高以下参数值

  1. fastcgi_connect_timeout 300;
  2. fastcgi_send_timeout 300;
  3. fastcgi_read_timeout 300;

除了上面列出的三种情况,当然还会有其它原因,但上面三种情况是最常见的了。

标签:Nginx 发布于:2019-10-04 16:35:21