后端明明在跑却显示异常?华为云ELB健康检查原理、配置与五个常见坑

举报
yd_235631729 发表于 2026/10/27 10:50:56 2026/10/27
【摘要】 详解华为云ELB健康检查原理与TCP/HTTP协议选择、配置步骤、安全组放行,以及后端误判异常的五个常见坑。

在华为云上用弹性负载均衡(ELB)对外提供服务时,很多人遇到过这样的现象:后端服务器明明在运行,ELB 却显示“异常”,流量一直打不过去;或者某台机器已经挂了,用户请求还会时不时报错。问题的根源往往出在健康检查上。本文梳理 ELB 健康检查的工作原理、配置步骤,以及实际运维中最容易踩的五个坑。

一、健康检查的原理

ELB 会按照设定的周期,主动向后端服务器组中的每个成员发送探测请求,根据响应判断其是否健康:

  • 判定为健康:继续向该后端分发流量;
  • 判定为异常:暂停向该后端分发新请求,直到它重新恢复健康。

常见的检查协议有三种:

协议 判定方式 适合场景
TCP 能否与检查端口建立连接 四层业务、非 HTTP 服务
HTTP 请求指定路径,比对返回状态码 Web 应用、API 服务
UDP 发送 UDP 探测并结合 ICMP 判断 UDP 监听器的后端

几个关键参数:检查间隔(多久探测一次)、超时时间(等待响应多久算失败)、健康/不健康阈值(连续成功或失败多少次才改变状态)。阈值的存在是为了避免偶发抖动导致后端频繁上下线。具体取值范围以控制台和官方文档为准。

注意:健康检查的探测请求来自 ELB 自身的地址段,而不是客户端 IP,这一点对后面的安全组配置非常重要。

二、配置步骤

  1. 准备后端服务:在 ECS 上部署应用,并提供一个轻量的检查接口,例如 /health,只返回 200,不访问数据库等重依赖。
# 在后端服务器本机先自测
curl -i http://127.0.0.1:8080/health
  1. 创建后端服务器组:在 ELB 控制台中进入“后端服务器组”,选择后端协议和分配策略,添加 ECS 并填写业务端口。

  2. 开启并配置健康检查:在后端服务器组中开启健康检查,选择协议(Web 服务建议选 HTTP),填写检查路径 /health、检查端口(默认与业务端口一致),设置间隔、超时与阈值。

  3. 放行安全组:在后端 ECS 的安全组入方向放行来自 ELB 的流量。独享型 ELB 需放行其所在子网网段,共享型 ELB 需放行官方文档给出的健康检查地址段(以文档为准)。

  4. 验证状态:回到后端服务器组,查看每个成员的健康检查结果,显示“正常”后再通过 ELB 地址访问业务:

for i in $(seq 1 10); do curl -s http://<ELB地址>/; echo; done

如果后端返回主机名,可以直观看到流量在多台服务器间轮转。

三、五个常见坑

坑一:安全组没放行健康检查流量。 这是后端“异常”最常见的原因。只放行了客户端访问的 80/443,却忘了 ELB 的探测来源地址段,或者健康检查端口与业务端口不同而未放行。排查时先看安全组,再看网络 ACL。

坑二:检查路径返回 301/302 或 401。 很多应用会把 / 重定向到登录页,或者对接口做了鉴权。HTTP 健康检查默认期望的状态码通常是 2xx/3xx 中的某些范围,返回不匹配就判失败。建议提供独立的免鉴权 /health 接口,并核对期望状态码设置。

坑三:检查接口太“重”。 把健康检查接口写成查询数据库、调用下游服务,一旦依赖抖动,所有后端同时被判异常,ELB 无处转发,小故障被放大成全站故障。健康检查应只反映本实例是否能处理请求。

坑四:阈值和超时设置过于激进。 间隔太短、不健康阈值设为 1,应用 GC 或短暂负载升高就会被摘除,后端频繁上下线。反过来设得过于宽松,故障机器又迟迟不被摘除。应结合业务响应时间权衡。

坑五:服务只监听 127.0.0.1 或主机防火墙拦截。 本机 curl 127.0.0.1 正常,但应用没有监听私网 IP,或者系统内的 firewalld/iptables 拦截了端口。可以用下面的命令检查:

ss -lntp | grep 8080          # 确认监听地址是 0.0.0.0 或私网 IP
curl -i http://<私网IP>:8080/health   # 从同 VPC 其他机器测试

结语

健康检查是 ELB 实现高可用的基础:它决定了故障能否被及时隔离,也决定了正常服务会不会被误伤。上线前花几分钟准备好轻量检查接口、放行安全组、调好阈值,能省下大量排障时间。

【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0)

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。