nginx 502 排查十分钟定位法

7092
laozhou楼主·发布于 2026-09-19·约 2 分钟读完·踩坑
  • laozhou

    每次看到 502 别急着重启,按这个顺序看:

    1. upstream 服务活着吗

    docker ps 看容器状态,curl 本地端口。容器 running 但端口不通,多半是进程崩了但容器没退。

    1. 错误日志说什么

    nginx error.log 里 502 前面那行才是真正原因。常见三种:connection refused(后端没监听)、upstream prematurely closed(后端崩了)、no live upstreams(健康检查全挂)。

    1. 是不是超时被当成 502

    后端处理超过 proxy_read_timeout 也会 502。日志里带 upstream timed out 就是这个。

    1. 连接数打满

    worker_connections 不够,表现为偶发 502,压力大时集中出现。

    1. DNS 缓存

    容器重启后 IP 变了,nginx 还缓存着老 IP。用变量加 resolver,或者干脆重启 nginx。

    九成情况在第 2 步就能定位,剩下的一成是第 5 步。重启能解决的问题,重启完还得知道为什么。

    主楼
  • sanshi

    我们的做法类似,多加了一层人工确认,代价是多点几下。

    #1
  • sanshi

    之前也纠结过这个,最后选了更笨但更稳的方案。

    #2

发表回复

登录后回复