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

如何将AWS同一域名的不同路由分别指向API Gateway与负载均衡器?

AWS同一域名按路径分流至API Gateway和ALB的实现方案

AWS完全支持同一域名下将不同路径路由到不同后端服务的需求,核心通过CloudFront + 自定义缓存行为实现,以下是具体步骤:

配置步骤

1. 创建CloudFront分发

  • 进入CloudFront控制台,新建分发:
    • 临时填写一个Origin Domain(比如你的ALB域名,后续会添加多源)
    • 选择Redirect HTTP to HTTPS作为Viewer Protocol Policy(生产环境推荐)
    • 在Alternate Domain Names (CNAMEs)中填入www.mydomain.com
    • 选择ACM中已申请的对应域名证书(注意:证书必须部署在us-east-1区域,CloudFront仅识别该区域的证书)

2. 添加后端源(Origin)

在分发的Origins标签页添加两个源:

  • API Gateway源:
    • Origin Domain填入你的API Gateway自定义域名(或官方生成的xxx.execute-api.{region}.amazonaws.com)
    • 其余保持默认,保存
  • ALB源:
    • Origin Domain填入ALB的DNS名称(从EC2负载均衡器详情页获取)
    • 其余保持默认,保存

3. 配置路径匹配的缓存行为

在Behaviors标签页创建自定义缓存行为,按路径分流:

  • 路由到API Gateway的行为:
    • 点击Create Behavior,Path Pattern填/books/*,选择API Gateway作为源
    • 缓存策略选择CachingDisabled(动态API无需缓存),其余按需配置,保存
    • 重复上述操作,创建Path Pattern为/students/*的行为,同样指向API Gateway源
  • 路由到ALB的行为:
    • 创建Path Pattern为/teachers/*的行为,选择ALB作为源
    • 缓存策略选择CachingDisabled(若为动态API),其余按需配置,保存
    • 重复操作,创建Path Pattern为/grades/*的行为,指向ALB源
  • 默认行为(/*):根据需求配置默认后端,或留空(如果所有路径都已覆盖)

4. 更新Route 53域名记录

将www.mydomain.com的Route 53记录改为指向CloudFront分发:

  • 进入Route 53托管区,修改对应A/AAAA记录
  • 记录类型选择Alias,目标选择你的CloudFront分发域名(格式为xxx.cloudfront.net)
  • 保存记录

5. 验证配置

等待CloudFront部署完成(约5-15分钟),测试各路径:

  • www.mydomain.com/books → API Gateway
  • www.mydomain.com/students → API Gateway
  • www.mydomain.com/teachers → ALB(NestJS API)
  • www.mydomain.com/grades → ALB(NestJS API)

关键注意事项

  • ACM证书必须部署在us-east-1区域,否则CloudFront无法识别
  • 建议为CloudFront配置Origin Access Control (OAC),限制仅CloudFront能访问后端源,提升安全性
  • CloudFront会按路径的精准度优先匹配,具体路径(如/books/*)会覆盖默认的/*行为

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.10 07:15:06