如何在单个ALB配置多HTTPS监听器并整合ELB优化AWS基础设施
问题2:整合多个ELB到单个ALB,保留HTTPS且无额外成本
针对你「子域名对应不同后端端口(80、8080、8081、8585)」的场景,基于主机头的ALB路由是零额外成本的最优方案(单个ALB小时费用远低于多个ELB总和),实操方案如下:
核心逻辑
用单个ALB的443端口统一接收所有HTTPS请求,通过子域名(主机头)匹配不同应用,自动转发到对应后端端口的目标组,替代原多ELB架构。
实操步骤
1. 统一SSL证书
在ACM申请包含所有业务子域名的SAN证书,例如:
frontend.yourdomain.com(对应原80端口应用)service1.yourdomain.com(对应原8080端口应用)service2.yourdomain.com(对应原8081端口应用)admin.yourdomain.com(对应原8585端口应用)
ACM会自动完成域名验证,证书免费且自动续期。
2. 分应用创建目标组
为每个后端应用创建独立目标组:
frontend-tg:目标类型选EC2/ECS,端口填80,绑定运行前端应用的实例/服务。service1-tg:端口填8080,绑定对应服务实例。service2-tg:端口填8081,绑定对应服务实例。admin-tg:端口填8585,绑定对应服务实例。
每个目标组配置匹配应用特性的健康检查路径(如/health),确保服务可用性检测准确。
3. 配置ALB HTTPS监听器规则
- 创建单个HTTPS监听器,端口
443,绑定上述ACM证书。 - 为监听器添加以下路由规则:
规则条件 动作 目标组 主机头 = frontend.yourdomain.com转发到目标组 frontend-tg主机头 = service1.yourdomain.com转发到目标组 service1-tg主机头 = service2.yourdomain.com转发到目标组 service2-tg主机头 = admin.yourdomain.com转发到目标组 admin-tg- 默认规则:可配置为返回404或转发到默认服务(按需设置)。
4. 调整DNS解析
将所有子域名的A/CNAME记录指向ALB的DNS名称(在ALB控制台「描述」标签下获取),替换原指向各ELB的解析记录。
5. 验证与测试
- 用浏览器或
curl命令访问每个子域名,确认HTTPS正常加载,请求正确转发到对应后端服务。 - 开启ALB访问日志(存储到S3),排查路由规则是否生效、流量是否符合预期。
最佳实践
- 优先主机头路由:避免暴露多个HTTPS端口,减少攻击面,更符合现代架构规范。
- 安全组严格限制:后端实例安全组仅允许ALB安全组访问对应端口,禁止外部直接访问后端端口。
- 健康检查优化:根据应用响应速度调整健康检查的间隔、超时时间,避免误判服务不可用。
- 日志持续监控:定期分析ALB访问日志,排查异常流量和路由问题。
内容的提问来源于stack exchange,提问作者Kodi Arasan M
相关产品推荐
相关产品推荐

