能否在同一AWS ALB配置多路径重定向至不同on-prem服务?
如何在AWS ALB上配置规则实现路径重定向后路由到指定On-Prem服务
可以实现你的需求,结合AWS ALB的监听器规则与目标组配置,根据你是否需要客户端地址栏变更,提供两种方案:
方案一:路径重写(服务器端转发,地址栏不变)
这是更推荐的方案,无需客户端跳转,直接在ALB层面修改请求路径后转发到对应服务,完美适配你的服务仅监听根路径/的场景:
- 为Service1和Service2分别创建独立的目标组(如
TG-Service1、TG-Service2),确保目标组健康检查配置正确(例如检查路径设为/,端口匹配服务监听端口),且ALB可正常访问你的On-Prem服务(确认VPC对等连接/专线连通,安全组允许ALB访问服务端口)。 - 编辑ALB的HTTP/HTTPS监听器,添加两条规则:
- 第一条规则:
- 匹配条件:路径为
/test1或/test1/*(按需选择精确匹配或前缀匹配) - 动作:选择转发到目标组,开启路径重写,将路径重写为
/(若为前缀匹配,可设置为/$1保留后续路径) - 目标组选择
TG-Service1
- 匹配条件:路径为
- 第二条规则:
- 匹配条件:路径为
/test2或/test2/* - 动作:开启路径重写为
/,转发到TG-Service2
- 匹配条件:路径为
- 第一条规则:
- 保留默认规则(如转发到默认服务或返回404)
方案二:客户端重定向+Cookie路由(地址栏变为/)
若确实需要客户端地址栏跳转到/后再路由到对应服务,可通过Cookie标记来源实现:
- 先创建两个目标组
TG-Service1、TG-Service2(配置要求同方案一)。 - 编辑ALB监听器,添加两条重定向规则:
- 第一条规则:
- 匹配条件:路径为
/test1或/test1/* - 动作:选择重定向,设置重定向目标为
/,同时在自定义重定向头中添加Set-Cookie: target-service=service1; Path=/(可按需设置Cookie有效期) - 重定向状态码选302(临时重定向)或301(永久重定向)
- 匹配条件:路径为
- 第二条规则:
- 匹配条件:路径为
/test2或/test2/* - 动作:重定向到
/,添加Set-Cookie: target-service=service2; Path=/
- 匹配条件:路径为
- 第一条规则:
- 在默认规则之前添加两条路由规则:
- 规则1:
- 匹配条件:Cookie包含
target-service=service1且路径为/ - 动作:转发到
TG-Service1
- 匹配条件:Cookie包含
- 规则2:
- 匹配条件:Cookie包含
target-service=service2且路径为/ - 动作:转发到
TG-Service2
- 匹配条件:Cookie包含
- 规则1:
- 默认规则处理无Cookie的
/请求(如转发到默认服务)
注意:方案二依赖客户端保存Cookie,若用户清除Cookie,再次访问/会触发默认规则。
内容的提问来源于stack exchange,提问作者user1154422
相关产品推荐
相关产品推荐

