NGINX 502 Bad Gateway的解决方法

 我来答
秦煜阿斯顿毗c2477
2016-05-28
知道答主
回答量:76
采纳率:100%
帮助的人:23.9万
展开全部

1、首先判断是不是php fastcgi进程数是否够用。
netstat -anpo | grep php-cgi | wc -l
如果实际使用的“FastCGI进程数”接近预设的“FastCGI进程数”,那么,说明“FastCGI进程数”不够用,需要增大。 但是要注意计算你的内存是否足够支撑更多的进程数,如果物理机内存并不足够大,加大这个进程数是没有用处的。
2、部分PHP程序的执行时间超过了Nginx的等待时间,可以适当增加nginx.conf配置文件中FastCGI的timeout时间,如下:
http
{
......
fastcgi_connect_timeout 300;
fastcgi_send_timeout 300;
fastcgi_read_timeout 300;
......
}
......
php.ini中memory_limit设低了会出错,修改了php.ini的memory_limit为64M,重启nginx,发现好了,原来是PHP的内存不足了。
如果以上方法依然不能解决问题,请尝试优化你的php程序,尽量的减少采集和数据库操作,加快其反应速度,有时候往往是因为自己的php程序反应速度太慢造成的。
自动修正nginx502错误
有些时候,502错误是不可避免的,可能是间歇性的,几天或者几周出现一次,这个时候我们需要一个监控程序,每分钟去检测一下系统的可用性,从而最大限度的减少停机时间。
监控502的脚本
cd /
vi 脚本名
#!/bin/sh
if [ -e /var/lock/subsys/502 ]
then
killall -9 curl 2>/dev/null
killall -9 php-cgi 2>/dev/null
phpfpm start >/dev/null
echo [ `date +'%h %d %T'` ] PHP-FPM died with no response, all processes restarted>>/path/to/log
else
touch /var/lock/subsys/502
if [ `curl --connect-timeout 5 -I 你的监控网址 >/dev/null | grep '502 Bad Gateway' -c` != '0' ]
then
killall -9 php-cgi 2>/dev/null
phpfpm start >/dev/null
echo [ `date +'%h %d %T'` ] PHP-FPM died with 502 bad gateway, all processes restarted>>/path/to/log
fi
rm -f /var/lock/subsys/502
fi
crontab -e
加入一分钟检测一次这个脚本
通过以上的步骤基本上可以了解和解决 NGINX 502 Bad Gateway

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
Storm代理
2023-07-25 广告
StormProxies是一家可靠的代理服务提供商,提供原生IP(住宅原生IP)和高匿名代理服务。以下是关于StormProxies的原生IP服务的一些信息:1. 住宅原生IP:StormProxies提供的住宅原生IP是指从真实的家庭或企... 点击进入详情页
本回答由Storm代理提供
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式