You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

AWS目标组不健康:Docker容器部署.NET API访问异常排查

核心故障根因

Docker部署场景下应用负载均衡器(ALB)的目标组没有任何特殊配置要求,当前故障完全是配置逻辑错配导致:
你前期直连EC2弹性IP时已经验证过,容器的80端口HTTP服务可正常访问、443端口HTTPS服务无法响应,但后续配置目标组时,你将转发端口、健康检查协议全部设置为HTTPS:443,ALB向后端实例发起请求时根本拿不到有效响应,自然判定目标不健康,拒绝转发所有流量。

现存配置问题梳理

  • 目标组协议端口配置错误:你在ALB层已经配置了SSL证书,ALB本身就承担SSL卸载能力,不需要后端实例再处理HTTPS流量,配HTTPS:443转发到后端属于多此一举,且后端443端口本身就没有正常提供服务。
  • 安全组规则大概率存在漏配:你之前能直连弹性IP访问服务,只能说明你放通了本地客户端IP到实例的访问权限,不能证明ALB可以正常访问实例服务端口,这是新手配置ALB时最容易踩的漏项。
  • ALB可用区配置不符合规范:当前你只给ALB关联了eu-west-2c单个可用区,ALB标准部署要求至少关联2个及以上可用区的公有子网,单可用区配置即使调通也存在极高的单点故障风险。

分步修复方案

  1. 修正目标组配置
    • 将目标组的转发目标端口从443改为80,对应当前容器实际正常监听的HTTP服务端口
    • 健康检查协议调整为HTTP,检查端口选择「与流量端口一致」,检查路径如果你的.NET API没有配置专门的健康检查端点可以暂时保留/,如果有/health之类的无鉴权健康检查路径建议替换为专用路径,避免默认路径的鉴权、重定向逻辑导致健康检查误判,成功判定状态码保留200即可,超时、间隔、健康阈值参数无需调整
    • 保存配置后等待30-60秒,观察目标组健康状态是否转为健康
  2. 核对安全组规则
    • EC2实例关联的安全组入站规则,放通80端口的TCP访问,源地址直接填写ALB自身关联的安全组ID即可,不需要开放0.0.0.0/0的80端口访问,减少实例暴露面
    • ALB关联的安全组入站规则,放通80、443端口的TCP访问,源地址设置为0.0.0.0/0(公网服务场景)
  3. 补全ALB多可用区配置
    • 给ALB额外添加至少1个eu-west-2区域内的其他可用区,对应子网选择公有子网,满足ALB的最低部署要求
  4. 访问验证
    • 目标组健康检查全部转为健康后,先直接访问ALB自动分配的DNS名称,验证80端口是否能正常跳转到HTTPS,443端口是否能正常返回API响应
    • ALB自身访问正常后,核对Route53托管区内的A记录别名是否正确指向当前ALB,再验证域名访问是否正常

补充说明

公网场景下把SSL卸载放在ALB层是标准生产架构,后端容器不需要额外配置SSL证书、不需要监听443端口,只需要正常提供HTTP服务即可,既可以省去后端更新证书的运维成本,也能降低实例的加解密计算开销。

内容的提问来源于stack exchange,提问作者Alex Lynn

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.30 18:27:25