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

如何配置反向代理路由至两个ALB,实现单域名多路径分流?

最优实现方案

首先,你之前在K8s里修改手动创建的alb1规则报错是正常的——K8s的AWS Load Balancer Controller只能管理它自己创建的ALB,手动创建的alb1不在它的管控范围内,所以直接通过Ingress配置修改会失败。

下面是两种可行的最优方案,按需选择:

方案一:新增顶层ALB作为统一入口(推荐)

这是最直接且易维护的方案,完全兼容现有两个ALB的部署模式:

  • 创建一个全新的ALB(命名为alb-main),将域名abc.com的DNS解析指向这个ALB。
  • 在alb-main上配置HTTP/HTTPS监听规则,注意规则匹配顺序是从上到下优先匹配,所以按以下顺序配置:
    • 路径规则:/newpage(如果需要覆盖子路径,用/newpage/*),转发到alb2对应的目标组。
    • 路径规则:/oldpage(或/oldpage/*),转发到alb1对应的目标组。
    • 默认规则(/*),转发到alb1对应的目标组。
  • 调整alb1和alb2的安全组,允许alb-main的流量访问(开放80/443端口),确保目标组的健康检查正常。

方案二:用CloudFront作为统一入口(附带CDN能力)

如果需要CDN缓存优化Next.js静态资源,可以选择这种方案:

  • 创建CloudFront分发,将自定义域名设置为abc.com,并配置对应的SSL证书。
  • 添加两个自定义源:分别指向alb1和alb2的公网域名,源端口选择80或443(根据后端ALB的配置)。
  • 在CloudFront的「行为」中配置路径规则,同样按优先级排序:
    • 路径模式/newpage/*,关联alb2的源,缓存策略根据Next.js的需求调整(比如静态资源缓存长期,动态页面不缓存)。
    • 路径模式/oldpage/*和默认路径/*,关联alb1的源。
  • 确保后端ALB的安全组允许CloudFront的IP段访问,或者直接开放公网访问(如果用CloudFront的源保护功能,可以更安全)。

关键注意事项

  • 所有路径规则的匹配顺序必须严格遵循「具体路径在前,通用路径在后」,否则/*会优先匹配所有请求,导致/newpage无法转发到alb2。
  • 如果使用HTTPS,顶层入口(ALB/CloudFront)需要配置覆盖abc.com的SSL证书,后端ALB可以使用HTTP或内部证书(只要入口能信任即可)。
  • 测试时要覆盖边缘场景:比如/newpage末尾带/或不带/、/newpage/xxx子路径、/oldpage的各种变体,确保转发符合预期。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.22 03:02:43