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

AWS应用负载均衡器配置:IIS站点故障时如何路由至正常实例?

解决ALB在IIS实例站点停止后仍转发流量的问题

我之前碰到过一模一样的问题!核心原因是ALB默认的健康检查可能仅检测实例的TCP端口是否开放(比如80端口是否通),但不会验证IIS站点本身是否正常提供服务——哪怕你停了站点,只要实例的80端口还在监听(IIS服务没完全停止的话端口可能还处于开放状态),ALB就会认为实例是健康的,继续转发流量。

下面是亲测有效的配置步骤:

1. 配置精准的目标组健康检查

ALB的健康检查是绑定目标组的,不是负载均衡器本身,所以要修改目标组的健康检查规则:

  • 登录AWS控制台,进入「EC2」服务,左侧导航栏找到「负载均衡器」,选中你的ALB
  • 切换到「目标组」标签,找到关联IIS实例的那个目标组,点击「编辑健康检查」
  • 关键配置项调整:
    • 协议:选择和你的IIS站点一致的协议(HTTP或HTTPS)
    • 端口:填写站点实际监听的端口(比如80或443)
    • 路径:填写一个能代表站点正常运行的路径,比如根路径/,或者专门创建一个静态健康检查页面/health-check.html(只要访问这个页面能返回200状态码就行)
    • 成功阈值:建议设为2(连续2次检测成功才标记实例为健康)
    • 失败阈值:设为2(连续2次检测失败就标记为不健康)
    • 超时时间:设为5秒(根据你的站点响应速度调整)
    • 间隔时间:设为10秒(平衡检测频率和资源消耗)
  • 保存配置后,ALB会定期向每个实例的指定路径发送请求,只有返回200-399之间的状态码,才会将实例标记为健康状态

2. 验证配置效果

  • 停掉其中一台实例的IIS站点,等待1-2个健康检查间隔(比如20秒左右)
  • 回到目标组的「目标」标签,查看实例状态:不健康的实例会显示「不健康」,ALB会自动停止向它转发流量
  • 多次刷新example.com,此时应该只会路由到正常运行的实例,不会再出现交替的错误页面

3. 进阶优化(可选)

  • 如果你的站点有业务层面的依赖(比如数据库、缓存服务),可以写一个简单的ASP.NET健康检查接口,验证这些依赖是否正常,返回200(健康)或500(不健康)状态码,把健康检查路径指向这个接口,实现业务级别的健康检测
  • 配置CloudWatch告警:当目标组中不健康实例数量超过阈值时,通过SNS发送邮件或短信通知,及时发现故障

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.15 03:48:57