Total Pageviews

Saturday, 27 April 2013

LNMP(Nginx + PHP FastCGI)502 Bad Gateway错误解决

服务器今天频繁出现502 Bad Gateway错误,重启LNMP后恢复正常,但是过一会儿又出现问题。

在网上查到FastCGI的进程数不够往往会导致该问题,原文章在这里 http://blog.s135.com/post/361/。

使用 netstat -anpo | grep "php-cgi" | wc -l 命令可以查看当前实际的FastCGI进程数,如果该数字接近预设的值(预设值可以在/usr/local/php/etc/php-fpm.conf中查看<value name="max_children">5</value>)则需要增大该预设值。

编辑/usr/local/php/etc/php-fpm.conf,将<value name="max_children">5</value>根据情况修改为较大的值,然后重启LNMP,502问题没有再出现。



关于max_children

这个要按照服务器的繁忙程度来计算,最好是得到详细的访问者日志后再进行调整。

设置的值越大后台跑的php-cgi 进程就越多,这样排队速度就越快。反之就是越少就越慢。

但是每一个php-cgi所耗费的内存在20M左右。所以2G的服务器这个值可以设置成40-64。