负载均衡连接超时或中断本质是转发链路某处断开,90%问题可通过分层验证定位:先查健康检查是否误判,再直连后端隔离层级,接着验配置语法与资源状态,最后排查主备切换及协议兼容性。

负载均衡连接超时或中断,本质是请求在转发链路中某处卡住或断开。别急着重启,90% 的问题能通过分层验证快速定位——从健康检查、网络连通性、配置状态到协议兼容性,一层层往下筛。
先看健康检查有没有“误杀”后端
后端服务本身能 curl 通,但负载均衡却标为 DOWN,这是最常见假象。
- 确认健康检查路径真实存在且返回 2xx(比如配了 /healthz,但后端只暴露 /actuator/health)
- 检查超时时间(timeout)和失败阈值(fall / max_fails)是否过严:高延迟环境下,max_fails=3 fail_timeout=10s 容易把慢节点反复踢出
- 云上 CLB/ALB 默认用 TCP 检查,若后端只支持 HTTP/2 或监听 UDP 端口,健康检查会直接失败
- 七层检查若遇到 302 跳转、非 2xx 响应或 Host 头不匹配,也会判定异常
绕过负载均衡直连后端,快速定位层级
这是最高效的“二分法”:如果直连正常,说明问题一定出在 LB 本身或它与后端之间的链路。
- 用 telnet 后端IP 端口 或 nc -zv 后端IP 端口 测试四层连通性;失败就查防火墙、安全组、VPC 对等连接、路由表
- 用 curl -H "Host: example.com" http://后端IP:端口/api/test 模拟真实七层请求,验证应用层是否可达
- K8s 场景下,ClusterIP 不可直连外部,需进 Pod 所在节点执行 curl http://Pod-IP:端口
检查安全组与网络策略是否放行
很多超时其实是被网络策略无声拦截了。
- 独享型负载均衡:后端云主机安全组入方向必须放通 LB 后端子网网段
- 共享型负载均衡(如腾讯云 CLB 共享实例):需放通 100.125.0.0/16 这个固定源段
- 四层监听器开启“获取客户端 IP”后,**禁止同一台机器既作后端又作客户端**,否则连接会被拒绝
- 跨 VPC 添加后端?确认两个 VPC 之间已建立对等连接且路由配置正确
查配置、日志与连接状态细节
超时不一定代表“连不上”,也可能是“连得上但撑不住”。
- 查看 access_log 中 $upstream_addr 是否为空、$upstream_response_time 是否持续偏高
- 开启 error_log debug 级别,搜索关键词:"no live upstreams"(所有节点满)、"connect() failed (111)"(被拒)、"upstream connection is busy"(keepalive 池耗尽)
- 在各后端运行 ss -tn state established | grep :端口 | wc -l,对比 ESTABLISHED 连接数是否严重倾斜
- Nginx 场景下,关注 $connection_requests 是否持续增长——说明长连接未重分配,least_conn 失效










