如何通过AWS ALB规则实现同一HTTPS域名下多端口服务路由?
实现ALB路径转发到EC2实例上的不同容器服务
完全可以通过ALB的规则配置实现你要的路径转发需求,具体操作步骤如下:
1. 准备目标组
- 创建两个目标组:
- 目标组1:关联你的EC2实例,端口设为3000,配置对应的健康检查路径(比如
/a/health,如果API服务提供健康检查端点) - 目标组2:关联同一个EC2实例,端口设为5000,健康检查路径设为Gradio服务对应的可用端点(比如
/b)
- 目标组1:关联你的EC2实例,端口设为3000,配置对应的健康检查路径(比如
2. 配置ALB 443监听器规则
在ALB的HTTPS(443端口)监听器下添加以下规则(注意规则优先级,路径匹配规则要放在默认规则之前):
- 规则1:路径条件匹配
/a/*,动作设置为转发到目标组1 - 规则2:路径条件匹配
/b/*,动作设置为转发到目标组2 - 保留默认规则(可选,比如设置为返回404响应,或者转发到其中一个服务作为兜底)
3. 关键注意事项
- 确保EC2实例的安全组允许ALB所在安全组访问3000和5000端口,否则ALB无法转发流量到容器服务
- 调整容器服务的路径配置:
- API服务要确保在
/a路径下正常响应请求 - Gradio服务需要设置根路径为
/b,可以通过启动参数配置:gradio your_app.py --root-path /b,否则可能出现页面资源加载异常的问题
- API服务要确保在
- 验证健康检查:确保两个目标组的健康检查状态为正常,否则ALB不会转发流量到对应目标
内容的提问来源于stack exchange,提问作者ardito.bryan
相关产品推荐
相关产品推荐

