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

如何解决AWS ALB指向同一EC2多端口时8081无法访问问题?

无法访问AWS ALB配置的8081端口&目标组不健康的排查方案

当前配置现状

  • ALB监听器:仅配置了80端口转发至TG-prod目标组(对应EC2的8080端口),未针对8081端口的服务配置对应转发规则
  • 目标组状态:TG-dev目标组显示不健康,关联的EC2实例未通过健康检查
  • EC2安全组:
    • 负载均衡器专属访问SG:仅允许ALB访问EC2的8080端口,未开放8081端口的入站权限
    • 实例绑定的初始SG:已开放8080、8081端口的入站规则
  • PM2运行状态:8080和8081的Node.js服务均显示在线,但两者可能存在启动配置差异(如绑定地址、健康检查接口)

排查&解决步骤

1. 补全ALB监听器配置

  • 新增监听器:选择对应协议(HTTP/HTTPS),设置监听端口(可复用80端口按路径转发,或单独用8081端口),将请求转发至TG-dev目标组,并确认目标组的转发端口为8081
  • 确保监听器的协议、端口与目标组的配置完全匹配

2. 修复TG-dev目标组健康检查

  • 核对健康检查参数:
    • 确认健康检查路径是8081服务实际存在的接口(如/health),且该接口能返回2xx状态码
    • 检查健康检查的端口是否设置为8081,协议与服务一致
    • 调整健康检查阈值:建议超时时间5秒、间隔10秒、失败阈值2次,避免因阈值过严导致误判
  • 本地验证:登录EC2实例,执行curl localhost:8081/[健康检查路径],确认服务能正常响应

3. 修正EC2安全组规则

  • 编辑负载均衡器专属SG,添加8081端口的入站规则,来源设置为ALB的安全组(或ALB的IP范围)
  • 确认EC2实例的安全组组合(初始SG+负载均衡器SG)允许ALB方向的8081端口流量进入

4. 验证Node.js服务的绑定配置

  • 检查服务绑定地址:确认8081服务的代码中,监听地址是0.0.0.0而非localhost(仅绑定localhost的话,ALB无法从外部访问)
  • 端口监听验证:执行netstat -tulpn | grep 8081,确认输出显示0.0.0.0:8081或:::8081(表示监听所有网卡)
  • PM2配置对比:查看8080和8081服务的PM2启动配置(如pm2 show [服务名]),检查是否存在环境变量、启动命令、端口参数等差异

5. 流量连通性测试

  • 用curl -v [ALB域名]:[监听器端口]/[8081服务路径]测试请求是否能到达服务,查看返回的状态码和响应内容
  • 查看ALB访问日志:确认请求是否转发至目标组,以及具体的错误原因(如503对应健康检查失败,404对应路径不存在)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.28 03:23:24