502 Bad Gateway错误可能原因及解决方法

早上起来看到阿里云的邮件说http.responsetime报警,,
登录到服务器上看了半天没找到原因,nginx reload过没用,静态页面是可以访问的。
百度了下
有篇文章里提到了磁盘满了,,df一看,擦100%,想想最近没做什么,只能使日志文件太占空间了。
du -sh ./* | sort -n >a.txt
打开a.txt一看 log目录两三个G,,,清理了下,,,o了。
决定看下子目录情况,好做写相应处理。。。。。。。。。。
du -a ./* | sort -n >a.txt

出现502 其他可能原因
第二种原因:

在php.ini里,eaccelerator配置项一定要放在Zend Optimizer配置之前,否则也可能引起502 Bad Gateway

第三种原因:
在安装好使用过程中出现502问题,一般是因为默认php-cgi进程是5个,可能因为phpcgi进程不够用而造成502,需要修改/usr/local/php/etc/php-fpm.conf 将其中的max_children值适当增加。
也有可能是max_requests值不够用。

第四种原因:
php执行超时,修改/usr/local/php/etc/php.ini 将max_execution_time 改为300

第五种原因:
磁盘空间不足,如mysql日志占用大量空间清理一下磁盘上的文件,有部分剩余空间,重启即可恢复。

第六种原因:
查看php-cgi进程是否在运行

第七种原因:
将nginx.conf里的
fastcgi_connect_timeout
fastcgi_send_timeout
fastcgi_read_timeout都调大一点。

第八种可能原因:

九、也可以尝试将unix套接字改成tcp/ip的,修改/usr/local/php/etc/php-fpm.cnf 里设置/tmp/nginx.socket 改成127.0.0.1:9000 ,同时/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; 之后重启试试。

十、如果虚拟主机的日志文件过大也可能会造成502问题。
建议定期清空一下虚拟主机的日志文件。

十一、有些程序或者程序的主题有死循环或其他非常占用资源的代码也可能会引起502,可以尝试暂时注释掉可能的主机的配置文件,重启看看是否还会502。

未经允许不得转载:ganlei的个人博客 » 502 Bad Gateway错误可能原因及解决方法

赞 (2)
分享到:更多 ()