首页/网络/网络排障速查/502/504 与上游超时配置判读

502/504 与上游超时配置判读

502 多为连不上上游或上游断开,504 为读上游超时;先按状态码分支,再把 proxy 超时与后端真实处理耗时对齐,而不是无脑调大。

网络排障速查网络更新于 2026-10-12

错误日志与配置

错误日志与配置
tail -100 /var/log/nginx/error.log | grep -E 'upstream timed out|connect\(\) failed|upstream prematurely closed'
# 配置示例(nginx.conf / conf.d):
# proxy_connect_timeout 3s;
# proxy_send_timeout    30s;
# proxy_read_timeout    30s;
# proxy_next_upstream error timeout http_502 http_504;

状态与含义

状态码 / 日志含义与方向
502 Bad Gateway连不上上游 / 上游提前关闭连接
504 Gateway Timeout读上游响应超时(后端处理太久)
connection refused上游端口没监听(服务挂了或重启中)
upstream prematurely closed上游中途关闭连接(崩溃/被杀)
499(客户端关闭)客户端等不及先断开,常因后端太慢
调整 proxy_read_timeout 之前,先拿 $upstream_response_time 看后端真实耗时:如果后端稳定在 40s,把超时从 30s 提到 60s 只是让慢请求变『慢成功』。

易错点

  • 把 504 当网络问题处理:绝大多数是后端处理超时
  • 调大读超时掩盖后端慢,连接与线程堆积反而更严重

数据来源与参考

  • nginx 文档:proxy_read_timeout / proxy_next_upstream
  • RFC 9110:502 与 504 语义

相关工具

​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌