1.502 Bad Gateway大部分情况下原因是在安装php前,脚本中某些lib包可能没有安装上,造成php没有编译安装成功。可以看一下是否存在/usr/local/php/sbin/php-fpm ,如果没有肯定没安装成功。如果没有的话,重新安装即可。
2.在php.ini里,eaccelerator配置项一定要放在Zend Optimizer配置之前,否则也可能引起502 Bad Gateway
3.在安装好使用过程中出现502问题,一般是因为默认php-cgi进程是5个,可能因为phpcgi进程不够用而造成502,需要修改/usr/local/php/etc/php-fpm.conf 将其中的max_children值适当增加。也有可能是max_requests值不够用。
4.php执行超时,修改/usr/local/php/etc/php.ini 将max_execution_time 改为300
5.磁盘空间不足,如mysql日志占用大量空间
6.查看php-cgi进程是否在运行
7.将nginx.conf里的fastcgi_connect_timeout,fastcgi_send_timeout,fastcgi_read_timeout都调大一点
8.也可以尝试将unix套接字改成tcp/ip的,修改/usr/local/php/etc/php-fpm.cnf 里设置<value name=“listen_address”&/tmp/nginx.socket</value> 改成<value name=“listen_address”>127.0.0.1:9000</value> ,同时/usr/local/nginx/conf/nginx.conf 及其/usr/local/nginx/conf/vhost/ 下面的虚拟主机配置里的fastcgi_pass unix:/tmp/php-cgi.sock; 替换为fastcgi_pass 127.0.0.1:9000; 之后重启试
9.如果虚拟主机的日志文件过大也可能会造成502问题。建议定期清空一下虚拟主机的日志文件。