真实面经题目 · 原创解析
HTTP 502 状态码表示什么?
HTTP 502 Bad Gateway 表示网关或代理服务器从上游服务器收到了无效响应。它通常不是客户端请求格式本身的错误,而是代理、负载均衡、应用服务、网络链路或协议转换之间出现问题。
真实面经题目 · 原创解析
HTTP 502 Bad Gateway 表示网关或代理服务器从上游服务器收到了无效响应。它通常不是客户端请求格式本身的错误,而是代理、负载均衡、应用服务、网络链路或协议转换之间出现问题。
502 的准确含义是 Bad Gateway:客户端请求先到达代理、网关或负载均衡,代理再访问上游服务时,上游返回了无法理解、格式不合法、连接异常中断或协议不匹配的响应,于是代理向客户端返回 502。排查时要沿链路看:客户端到网关是否正常,网关到上游是否能连通,上游进程是否存活,端口和协议是否匹配,应用是否崩溃或提前关闭连接,Nginx、Ingress、CDN、负载均衡日志中 upstream status 和 error log 写了什么。它和 500、503、504 的区别在于,502 强调网关拿到的是坏响应或异常响应,503 更偏服务不可用,504 更偏上游超时。
502 属于 5xx 服务器错误,名称是 Bad Gateway。这里的 gateway 可以是 Nginx、API 网关、Ingress、CDN、反向代理或负载均衡。客户端并不是直接收到源站应用的正常响应,而是中间层代表上游返回了错误,说明中间层和上游之间的交互出了问题。
常见触发包括上游服务未启动、端口配错、进程崩溃、连接被重置、响应头非法、返回内容不符合代理期望、HTTP 与 HTTPS 协议配错、Unix socket 权限问题、容器健康检查失败、网关路由到错误后端等。502 更关注上游响应异常,而不是用户提交参数是否符合业务规则。
500 通常表示当前处理请求的服务器内部错误;502 表示代理作为网关访问上游时拿到坏响应;503 表示服务暂时不可用,可能是过载、维护或无健康上游;504 表示网关等待上游响应超时。面试回答能区分这些状态码,比只背 Bad Gateway 更有价值。
排查要按请求链路推进。先看网关访问日志中的 upstream address、upstream status、request time 和 upstream response time,再看 error log 是否有 connection refused、connection reset、invalid header、upstream prematurely closed connection 等线索。随后检查上游服务日志、健康检查、端口监听、DNS、服务发现和最近发布变更。
临时止血可以回滚发布、摘除异常实例、重启崩溃进程、修正路由或扩容上游。长期治理要补充健康检查、灰度发布、熔断降级、超时配置、协议一致性校验和错误日志标准化。502 往往是链路问题的症状,不能只在客户端重试层面解决。
502 强调网关从上游收到无效或异常响应,504 强调网关等待上游响应超时。一个偏响应坏掉,一个偏响应迟迟没回来。
常见线索包括 connection refused、connection reset by peer、upstream prematurely closed connection、upstream sent invalid header 等,它们分别指向端口不可达、连接被重置、上游提前关闭和响应格式异常。
前端可以给出明确失败提示,并对幂等请求做有限重试或降级展示。但根因通常在网关到上游链路,必须由服务端日志和监控定位。
优先查新版本实例健康、端口监听、启动日志、反向代理 upstream 配置、协议是否匹配以及错误是否集中在某些实例。能快速回滚时先止血再细查。