业务高峰期nginx 很大比例报502bad gateway
业务高峰期部分请求报502错误,
ERROR日志提示 no live upstreams while connecting to upstream,但后端第二层NGINX服务器日志无502,第二层的NGINX没有收到前端NGINX的502错误请求,请问是NGINX配置还是后端服务原因,从哪几个方面去排除?
结构:互联网—> NGINX代理—>第二层NGINX代理->PHP服务
邀请回答


共4个回答
导致502的一个常见原因,是三次握手建立失败了,你可以用netstat统计下,是否存在报文丢失等情况,如果是的话,报502就是正常的,此时你可以通过Nginx的next upstream机制,在Nginx层通过重新转发请求把502错误化解掉。
502 bad gateway的原因有多种,这是其中一的一种,仅供参考!
首先查找php-fpm位置:
1.find / -name php-fpm;
2.查看listen值;
打开nginx配置文件,查看fastcgi_pass配置项值;
fastcgi_pass 127.0.0.1:9000;
使用grep查看 php-fpm是否运行;
1.netstat -ant | grep 9000
2.结果为空,说明php-fpm未运行;
因此,将nginx配置文件中fastcgi_pass配置项改为 unix:/tmp/php-cgi.sock;
fastcgi_pass unix:/tmp/php-cgi.sock;
保存,并重启nginx;
/usr/local/nginx/sbin/nginx -s reload
再次访问,运行成功!!
看看这篇文章能解决您的问题吗 https://www.nginx-cn.net/article/186
这个之前遇到过是因为nginx upstream的默认监控检查的问题,可以在upstream里加上max_fails=0 fail_timeout=0试试。