真实面经题目 · 原创解析

HTTP 502 状态码表示什么?

HTTP 502 Bad Gateway 表示网关或代理服务器从上游服务器收到了无效响应。它通常不是客户端请求格式本身的错误,而是代理、负载均衡、应用服务、网络链路或协议转换之间出现问题。

出现于:字节跳动 · 后端开发

60 秒回答模板

502 的准确含义是 Bad Gateway:客户端请求先到达代理、网关或负载均衡,代理再访问上游服务时,上游返回了无法理解、格式不合法、连接异常中断或协议不匹配的响应,于是代理向客户端返回 502。排查时要沿链路看:客户端到网关是否正常,网关到上游是否能连通,上游进程是否存活,端口和协议是否匹配,应用是否崩溃或提前关闭连接,Nginx、Ingress、CDN、负载均衡日志中 upstream status 和 error log 写了什么。它和 500、503、504 的区别在于,502 强调网关拿到的是坏响应或异常响应,503 更偏服务不可用,504 更偏上游超时。

考点 核心定义
难度 真实面经高频题
回答目标 讲清机制、边界和追问

深入解析

01

状态码语义

502 属于 5xx 服务器错误,名称是 Bad Gateway。这里的 gateway 可以是 Nginx、API 网关、Ingress、CDN、反向代理或负载均衡。客户端并不是直接收到源站应用的正常响应,而是中间层代表上游返回了错误,说明中间层和上游之间的交互出了问题。

02

常见原因

常见触发包括上游服务未启动、端口配错、进程崩溃、连接被重置、响应头非法、返回内容不符合代理期望、HTTP 与 HTTPS 协议配错、Unix socket 权限问题、容器健康检查失败、网关路由到错误后端等。502 更关注上游响应异常,而不是用户提交参数是否符合业务规则。

03

与相邻状态码区别

500 通常表示当前处理请求的服务器内部错误;502 表示代理作为网关访问上游时拿到坏响应;503 表示服务暂时不可用,可能是过载、维护或无健康上游;504 表示网关等待上游响应超时。面试回答能区分这些状态码,比只背 Bad Gateway 更有价值。

04

排查路径

排查要按请求链路推进。先看网关访问日志中的 upstream address、upstream status、request time 和 upstream response time,再看 error log 是否有 connection refused、connection reset、invalid header、upstream prematurely closed connection 等线索。随后检查上游服务日志、健康检查、端口监听、DNS、服务发现和最近发布变更。

05

线上处理

临时止血可以回滚发布、摘除异常实例、重启崩溃进程、修正路由或扩容上游。长期治理要补充健康检查、灰度发布、熔断降级、超时配置、协议一致性校验和错误日志标准化。502 往往是链路问题的症状,不能只在客户端重试层面解决。

易错点

  • 把 502 解释成客户端请求错误,混淆了 4xx 和 5xx。
  • 只说服务器错误,不说明代理或网关访问上游时收到无效响应这一关键角色。
  • 分不清 502、503、504,导致排查方向从一开始就发散。
  • 只建议用户刷新页面,忽略网关日志、上游日志和发布变更才是定位重点。

面试官追问

502 和 504 有什么区别?

502 强调网关从上游收到无效或异常响应,504 强调网关等待上游响应超时。一个偏响应坏掉,一个偏响应迟迟没回来。

Nginx 返回 502 常见日志有哪些?

常见线索包括 connection refused、connection reset by peer、upstream prematurely closed connection、upstream sent invalid header 等,它们分别指向端口不可达、连接被重置、上游提前关闭和响应格式异常。

用户看到 502 时前端应该怎么处理?

前端可以给出明确失败提示,并对幂等请求做有限重试或降级展示。但根因通常在网关到上游链路,必须由服务端日志和监控定位。

发布后大量 502 应优先查什么?

优先查新版本实例健康、端口监听、启动日志、反向代理 upstream 配置、协议是否匹配以及错误是否集中在某些实例。能快速回滚时先止血再细查。