502 表示什么
502 表示负载均衡无法从后端获得符合协议的响应:常见原因是后端进程退出、端口不通、协议不匹配,或健康检查尚未摘除异常节点就开始转发。它指向的是「入口到后端」这一段,而不是客户端链路。排查从后端存活、端口可达、应用日志三处推进,基本能覆盖绝大多数情况。
基本信息
| 含义 | 入口无法从后端取得符合协议的响应 |
|---|---|
| 常见原因 | 后端进程退出、端口不通、协议不匹配、响应超时 |
| 判断维度 | 全部后端受影响还是个别后端受影响 |
| 配合手段 | 后端健康状态、访问日志、应用日志、抓包 |
| 与 504 区别 | 502 多为连接或协议问题,504 偏向后端处理超时 |
| 常见窗口 | 发布期间、依赖故障期间、容量被打满期间 |
典型使用场景
- 发布后出现 5xx:优先看新版本实例的探活与日志
- 个别后端报错:先看该实例自身的资源与依赖
- 大面积报错:优先怀疑依赖故障、健康检查配置或入口变更
- 应用日志无记录:说明请求未到达应用,问题在入口到后端这一段
- 容量型故障:连接被占满导致新建请求超时,表现为间歇性 502
在外侧复现并观察响应
在外侧复现并观察响应
curl -sv http://<LB地址>/health 2>&1 | tail -20 # 观察响应头与错误信息
# 直接从内网访问后端,对比入口与直连的差异
curl -sv --connect-timeout 3 http://10.0.1.10:8080/health
# 后端侧确认进程与端口
systemctl status myapp --no-pager | head -5; ss -lntp | grep 8080现象与排查重点
| 现象 | 排查重点 |
|---|---|
| 全部后端 502 | 入口配置变更、依赖故障、健康检查参数异常 |
| 个别后端 502 | 该实例进程、资源占用与依赖连接 |
| 应用日志无请求记录 | 请求未到达应用,检查监听地址与端口 |
| 间歇性 502 | 后端连接被占满或响应超出超时阈值 |
大面积 502 优先怀疑发布变更或健康检查配置;个别后端 502 先看该实例自身日志,两类问题的处理路径完全不同。
排查时不要把注意力全放在负载均衡侧:入口只是转发者,绝大多数 502 的根因在后端进程、端口或应用处理能力上。