网站原来运行正常,突然出现 “502 Bad Gateway”页面,可能因为phpcgi进程不够用而造成502,一般php-cgi默认进程是5个,不够则需要修改/usr/local/php/etc/php-fpm.conf文件。
1、先查看php fastcgi的进程数,及max_children的值。
执行命令
netstat -anop | grep php-cgi | wc -l
netstat -anpo | grep php-fpm | wc -l
2、查看当前程有多少个。
执行命令
ps aux | grep php-fpm
观察fastcgi、php-fpm进程数,如果等于或高于5个就需要增加。
3、编辑/usr/local/php/etc/php-fpm.conf文件
把max_children值适当增加,如果php是5.3.*以上且使用的是dynamic模式,需要把pm.min_spare_servers和pm.max_spare_servers的值也适当增加。
提示:最大值可以按内存xxMB/2/20的整数来算(内存以MB为单位进行计算,/ 为除,取整数),最小值可以按内存/2/40 的整数来算,可以少点或多大,可以自己调整运行看看,同时pm.max_children也调整为和pm.max_spare_servers的值一样。
dynamic模式修改后的值
pm = dynamic
pm.max_children = 10
pm.start_servers = 2
pm.min_spare_servers = 2
pm.max_spare_servers = 10
保存文件后,执行命令
/etc/init.d/php-fpm reload
问题解决。