Elastic Beanstalk配置HTTP2共享ALB时出现额外监听器及实例不健康问题
问题解决方案
1. 共享ALB额外生成监听器、切换到正确监听器
- 提前确认你自行创建的ALB已配置好支持HTTP/2的HTTPS监听器(通常端口为443),且已绑定有效SSL证书
- 进入Elastic Beanstalk对应环境的「配置」页,找到「负载均衡」配置项点击编辑:
- 确认已选择「应用程序负载均衡器」、共享负载均衡器开关已打开,且选中的是你预先创建的ALB实例
- 找到「监听器」配置块,删除平台自动生成的多余监听器规则,仅保留和你预先创建的ALB监听器端口、协议匹配的规则,同时指定规则路径优先级、转发到当前环境的目标组即可
- 保存配置等待环境更新完成,后续Beanstalk就会直接复用指定的已有监听器,不会再额外生成新的监听器
2. 实例无法进入健康状态排查
- 调整Node服务监听逻辑:除了读取环境变量
PORT外,需要明确指定监听地址为0.0.0.0,正确写法为.listen(process.env.PORT, '0.0.0.0'),避免服务仅监听本地回环地址,导致ALB健康检查请求无法访问 - 检查对应目标组的健康检查配置:确认健康检查端口为8080、协议为HTTP,健康检查路径对应你Node服务中返回200状态码的路径,若根路径无有效响应可以单独新增
/health路由用于健康检查 - 检查EC2实例的安全组入站规则:要允许ALB所属安全组访问实例的8080端口,避免健康检查请求被安全组拦截
内容的提问来源于stack exchange,提问作者Antonio Gamiz Delgado
相关产品推荐
相关产品推荐

