回答
收藏
分享
举报
业务高峰期nginx 很大比例报502bad gateway
提问于2020-08-16 00:38

浏览 2k

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

已修改于2023-03-17 09:29



写下您的回答
发表回答
全部回答(5)

按点赞数排序

按时间排序

导致502的一个常见原因,是三次握手建立失败了,你可以用netstat统计下,是否存在报文丢失等情况,如果是的话,报502就是正常的,此时你可以通过Nginx的next upstream机制,在Nginx层通过重新转发请求把502错误化解掉。

赞同

5

回复举报

回答于2020-08-28 17:49



回复陶辉
回复
dongchch回复了

陶老师请教一下,现在抓包发现: 出现502的时候 nginx的请求没有往server服务器分发就返回了502,其实这时候后台server是正常的。这

1

回复举报

回答于2020-11-05 03:31



回复dongchch
回复
陶辉回复了

我没找到怎样对你的回复继续回复的按钮哈。你看下error.log文件中,是否有no live upstream字样的LOG?这是error级别的日志

1

回复举报

回答于2020-11-05 08:09



回复陶辉
回复
  1. 502 bad gateway的原因有多种,这是其中一的一种,仅供参考!

  2. 首先查找php-fpm位置:

    1.find / -name php-fpm;

    2.查看listen值;

     

    Nginx+php7 502 Bad Gateway
  3. 打开nginx配置文件,查看fastcgi_pass配置项值;

    fastcgi_pass   127.0.0.1:9000;

    Nginx+php7 502 Bad Gateway
  4. 使用grep查看 php-fpm是否运行;

    1.netstat -ant | grep 9000

    2.结果为空,说明php-fpm未运行;

     

     

    Nginx+php7 502 Bad Gateway
  5. 因此,将nginx配置文件中fastcgi_pass配置项改为 unix:/tmp/php-cgi.sock;

    fastcgi_pass unix:/tmp/php-cgi.sock;

    Nginx+php7 502 Bad Gateway
  6. 保存,并重启nginx;

    /usr/local/nginx/sbin/nginx -s reload

    Nginx+php7 502 Bad Gateway
  7. 再次访问,运行成功!!

     

    Nginx+php7 502 Bad Gateway
赞同

3

回复举报

回答于2020-08-28 10:00



回复守望
回复

看看这篇文章能解决您的问题吗 https://www.nginx-cn.net/article/186

赞同

2

回复举报

回答于2020-08-29 14:58



回复守望
回复

这个之前遇到过是因为nginx upstream的默认监控检查的问题,可以在upstream里加上max_fails=0  fail_timeout=0试试。

赞同

2

回复举报

回答于2020-08-28 16:37



回复夜雨
回复

楼主你好,请问这个502的问题解决了吗?目前我们这边也是互联网-》NGINX代理-》后端服务,在请求量不大的情况下,ERROR日志提示 no live upstreams while connecting to upstream,但是此时后端服务都是正常的,收不到来着NGINX的请求,就只能看到NGINX的日志返回了502给客户端了

赞同

0

回复举报

回答于2023-05-24 09:22



回复9712979tjxg
回复

目前我们这边也是互联网-》NGINX代理-》JAVA 后端服务

0

回复举报

回答于2023-05-24 09:28



回复9712979tjxg
回复
提问者
marcyo
这家伙很懒还未留下介绍~
0
文章
2
问答
1
粉丝
相关问答