记一次Nginx偶现502的问题分析解决

博客介绍了在遇到Nginx返回502错误时,如何通过分析错误日志发现问题根源。问题源于'no live upstreams while connecting to upstream'错误,发现上游服务器因超时导致频繁失败。通过对nginx配置的调整,如增加`max_fails`和减少`fail_timeout`,解决了由于特定接口超时引发的上游服务器下线问题,有效降低了502错误发生的概率。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Nginx错误日志:no live upstreams while connecting to upstream xxx;

  1. 问题和现象:
    1. 近期有业务方反馈业务接口请求偶尔会返回502现象;
  2. 查看access.log日志中502请求个数:
    1. 全部接口统计过去一天502请求个数:7692,请求总数:376,178,782,502概率:0.002%;
  3. 查看nginx中的错误日志:nginx_log/error.log 搜关键词“no live upstreams”
    1. 发现类似报错:no live upstreams while connecting to upstream, client: xxxx, server:

  4. 问题分析:

    1. 根据超时接口名abc_service,找到对应的location,或者直接在nginx.conf中搜索关键词“proxy_read_timeout 800ms”;

    2. 通过该location下面的proxy_pass 找到对应的upstream;查看该upstream下面的server节点数和失败配置,默认配置为:max_fails=1 fail_timeout=10s

    3. 由于abc_service接口本身大于800ms超时请求较多,达到默认失败1次后,该server节点10s内不接受请求;当唯二的两个server都失败时,nginx进行quick recovery,把每个节点

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值