nginx报错502 Bad Gateway原因与解决方法

发布时间:2020-10-16编辑:脚本学堂
网站报错:
502 Bad Gateway /nginx/0.8.15
解释:
502 Bad Gateway 服务器作为网关或者代理时,为了完成请求访问下一个服务器,但该服务器返回了非法的应答。这个应该

网站报错:
502 Bad Gateway  /nginx/0.8.15

解释:
502 Bad Gateway 服务器作为网关或者代理时,为了完成请求访问下一个服务器,但该服务器返回了非法的应答。这个应该是网管使用了过滤软件。
可能是nginx高负载造成的!

解决:增加了fastcgi的相应请求时间
 

复制代码 代码如下:
http
{
......
fastcgi_connect_timeout 300;
fastcgi_send_timeout 300;
fastcgi_read_timeout 300;
......
}

经验总结
但是我在实际中碰到了这个问题,设置到500,还是会出现,只是比我设置120的时候要少一些。
后来发现主要是在一些post或者数据库操作的时候出现这种情况,静态页面是不会出现的。
反复的查问题,调试,也加大了CGI的进程数。
128
256再加上去可能会变得很慢。占用内存大了。
php-fpm.conf设置中还有一项,可能当时没注意到,无意中改了这个值。
request_terminate_timeout
这个值是max_execution_time,就是fast-cgi的执行脚本时间。
0s
0s为关闭,就是无限执行下去。(当时装的时候没仔细看就改了一个数字)
发现,问题解决了,执行很长时间也不会出错了。
优化fastcgi中,还可以改改这个值5s 。看看效果
终于发现502的错误其实不是nginx的问题,哈哈
php-cgi进程数不够用、php执行时间长、或者是php-cgi进程死掉,都会出现502错误。