文章详情

亚马逊云账号批发 AWS ALB/NLB 负载均衡器健康检查失败(Unhealthy)排查清单

亚马逊aws2026-08-04 15:29:39科技云代理Pro

AWS ALB/NLB 负载均衡器健康检查失败(Unhealthy)排查清单

看到目标组变成 unhealthy,很多人第一反应是“实例坏了”或者“负载均衡器有问题”。实际排查里,更常见的是配置不一致:服务没有真正监听、健康检查路径不对、返回码不符合要求、安全组没放行、NACL 拦截、证书或超时设置不合适。AWS ALB/NLB 健康检查失败如果发生在跨境部署、代开账号或新环境上线阶段,还要顺手确认账号付款方式、风控审核、资源配额和预算控制是否影响了资源创建与注册。

实战里建议的顺序是:先查目标服务本身,再查负载均衡配置,然后查网络层,最后再看账号、配额和成本控制问题。很多人跳着查,最后把简单问题拖成大故障。

一、先判断问题落在哪一层

排查前先把现象分清楚,不然很容易对着控制台反复改参数,却没有改到真正的点上。

  • ALB 场景:更常见的是 HTTP/HTTPS 路径、Host Header、返回码、重定向、证书或应用响应慢。
  • NLB 场景:更常见的是端口没开、目标没有监听、协议不一致、网络连通性差、NACL 拦截。
  • 新账号或新环境:有时不是健康检查本身的问题,而是账号付款方式未验证、风控审核未过、区域配额不足,导致资源没按预期创建或注册。

如果你是在做海外业务部署,先确认负载均衡器、目标实例、容器任务、数据库都在同一个 region、同一个 VPC 规划内。很多“unhealthy”最终是跨网络边界造成的。

二、按层排查 AWS ALB/NLB unhealthy 的常见原因

1. 目标服务本身没有真正提供健康检查页面或端口

  • 应用只在 127.0.0.1 监听,没有绑定到业务网卡地址。
  • 容器端口映射写错,容器内部开了,宿主机端口没有通。
  • 服务还没启动完成,就已经被注册到 target group。
  • 应用在高负载下响应超时,健康检查先失败。
  • 接口返回了 301、302、401、403、500 等非预期状态码。

最直接的做法,是在目标实例或容器里本地访问健康检查地址,确认返回值符合预期。不要只看进程是否存在,要看端口是否真正可用。

亚马逊云账号批发 2. 健康检查参数和业务接口不一致

  • 路径不对:把健康检查指到登录页、跳转页、鉴权页,很容易一直 unhealthy。
  • 协议不对:业务是 HTTP,你却配成 HTTPS;或者业务跑在 TLS 上,却拿明文去探测。
  • 端口不对:target group 的端口和服务监听端口不是同一个。
  • 返回码规则不对:应用返回 204、301、302 时,健康检查匹配规则可能没有放行。
  • 超时太短:冷启动、初始化脚本、数据库连接慢,都会让首次检查失败。

实际操作里,最稳妥的健康检查路径通常是一个独立的“/health”或“/ready”接口,不要挂认证,不要做复杂业务逻辑,只返回简单状态。

3. 安全组、网络 ACL、路由没有放通

  • 目标实例的安全组只放行了客户端来源,没有放行来自负载均衡器的流量。
  • 只开放了业务端口,没有开放健康检查端口。
  • NACL 只允许入站,不允许回包所需的临时端口范围。
  • 跨子网、跨路由表时,目标实例与负载均衡器之间缺少正确路由。

如果你在做分层防火墙,别忘了健康检查流量也要走通。很多团队只给客户端访问放行,却忘了 LB 到目标的内部探测流量。

4. ALB 和 NLB 的排查重点不一样

  • ALB 更容易在“路径、返回码、重定向、证书、Host 头”上出问题。
  • NLB 更容易在“端口、协议、监听、连通性、NACL”上出问题。
  • 如果你把原本需要 HTTP 检查的服务改成 TCP 检查,可能会“看起来健康了”,但只是网络通了,不代表业务接口真的可用。

所以不要只盯着绿色或红色状态,要结合业务访问方式判断。能通端口,不等于能正常提供服务。

三、最容易忽略的几个实战坑

  • 亚马逊云账号批发 健康检查打到了重定向页面:比如强制跳转 HTTPS、跳登录页、跳地区页,导致返回码不符合匹配规则。
  • 实例启动慢:应用依赖数据库、缓存、配置中心,启动时短暂不可用。
  • 容器编排更新中:任务已经注册,但 Pod 或容器还没 Ready。
  • 证书和域名不匹配:HTTPS 健康检查时,证书链、SNI、域名配置不一致会带来额外失败。
  • 只在本机测试通过:本地 curl 成功,不代表来自负载均衡器节点的请求也能成功。
  • 资源被降配或停机:为了控制成本,目标实例被关机、缩容、限制带宽,最后自己把健康检查打成失败。

四、账号购买、实名认证、企业认证、充值续费、支付方式这些问题,为什么也要先看

如果你是新购 AWS 账号、海外代付账号,或者由采购、财务、运维三方一起接管环境,部署前最好先确认账号层没有问题。虽然这类问题不直接等于 unhealthy,但会影响资源创建、目标注册、续费和后续扩容,最后表现出来就像“负载均衡器一直不好使”。

  • 付款方式验证未完成:资源创建流程可能中断,目标组或实例没有按预期到位。
  • 风控审核未通过:新账号、新地区、异常支付来源,容易触发审核,影响资源开通节奏。
  • 账单未激活或余额不足:测试环境还在跑,结果实例被停掉、服务被缩减,健康检查自然失败。
  • 企业资料不完整:跨境团队经常先拿到技术账号,后补资料,期间资源权限和购买权限不稳定。
  • 区域配额不足:想再开一台目标机或再建一个 target group,却被限额卡住,最后只能把旧资源硬改到新业务上。

从成本控制角度看,建议把“健康检查失败”与“账号/预算问题”分开看:前者是配置和网络问题,后者是资源生命周期问题。两类问题如果混在一起,排查时间会翻倍。

五、可直接照着做的排查清单

  1. 在目标实例或容器内访问健康检查地址,确认返回状态、路径和内容都正确。
  2. 亚马逊云账号批发 检查 target group 的协议、端口、健康检查路径、匹配返回码、超时和阈值。
  3. 确认安全组已放行来自负载均衡器的流量,不要只放行客户端来源。
  4. 亚马逊云账号批发 检查 NACL、路由表、子网是否一致,尤其是跨子网或跨可用区部署时。
  5. 亚马逊云账号批发 看目标服务日志,找超时、拒绝连接、认证失败、重定向等信息。
  6. 查看 target health 的 reason,别只看状态字面值;常见原因会直接提示超时、返回码不匹配、目标未注册等。
  7. 如果是 ALB,优先准备一个独立的健康检查接口,不要复用业务首页或登录页。
  8. 如果是 NLB,先用最简单的 TCP 连通性验证端口是否真的通,再看应用层问题。
  9. 确认账号、账单、风控和配额没有阻断资源创建或扩容。
  10. 如果是为了省成本而缩减资源,确认目标实例没有被停机、降配或回收。

六、ALB 和 NLB unhealthy 现象对照表

现象 更常见于 ALB 更常见于 NLB 优先检查
端口能通但还是 unhealthy 路径、返回码、重定向、Host 头 协议不一致、目标未正确监听 健康检查参数和应用日志
刚上线就 unhealthy 冷启动、依赖未就绪、认证页拦截 进程还没起、监听端口没打开 启动顺序和 readiness 状态
本地访问正常,经过 LB 不正常 路径或证书配置不一致 安全组、NACL、路由未放通 网络层和 LB 到目标的访问路径
改成 TCP 后变健康 说明原来的 HTTP/HTTPS 检查设置太严格 说明网络通,但业务接口可能仍有问题 不要只看健康状态,要回到业务接口验证

七、常见错误:看起来像健康检查,其实是部署策略问题

  • 把生产流量直接打到没有预热的实例上,导致第一次检查超时。
  • 目标组里混入了不同版本、不同端口、不同协议的实例。
  • 容器服务更新时没有做灰度,全部目标同时切换,瞬间全部变 unhealthy。
  • 为了节省费用,把测试机和生产机共用一套规则,结果健康检查互相影响。
  • 新账号刚开通就急着上生产,没有先验证账单、配额、权限和风控是否已完全放开。

如果你现在是在做业务决策,建议把健康检查策略和资源开通策略一起定下来:先确认账号可用、预算可控、配额足够,再上线目标服务和监听规则。

八、FAQ

Q1:端口能 telnet 通,为什么还是 unhealthy?

因为健康检查不只看端口连通,还看协议、路径、返回码和响应时间。ALB 尤其容易在返回码和重定向上失败。

Q2:把健康检查改成 TCP 就好了,是不是问题解决了?

不一定。TCP 只能证明端口通了,不能证明业务接口正常。它适合先定位网络问题,不适合长期掩盖应用层故障。

Q3:NLB unhealthy 还要看安全组吗?

要看。虽然 NLB 常被认为更偏网络层,但目标实例是否放行来自负载均衡器节点的流量,仍然是常见问题。

Q4:新账号、付款方式未验证,会影响健康检查吗?

间接会。账号层问题通常不会把“已存在的健康检查”直接改坏,但会影响资源创建、续费、扩容和目标注册,最终表现出来像服务一直不正常。

Q5:什么时候应该先怀疑资源限制或成本控制?

当你发现实例被停机、目标数量不对、扩容失败、配额不足,或者财务侧要求缩减资源后再出现 unhealthy,就应该先查资源生命周期和预算策略。

结论:先排配置,再排网络,最后排账号和资源

处理 AWS ALB/NLB 健康检查失败,最有效的方法不是盲目重建,而是按层收敛问题:目标服务是否真的能响应,健康检查参数是否匹配,安全组和网络是否放通,账号支付、风控、配额和成本控制是否影响了资源状态。照这份清单走,通常都能把 unhealthy 的原因缩到很小的范围。

Telegram售前客服
客服ID
@cloudcup
联系
Telegram售后客服
客服ID
@yanhuacloud
联系