CloudFront与多API Gateway映射路径配置问题求助
解决方案:CloudFront与多API Gateway路径映射问题
你的问题核心是CloudFront的Origin Path配置错误,导致路径前缀被重复添加。以下是具体修复步骤:
1. 修正CloudFront行为与源的配置
- 针对每个API Gateway对应的CloudFront行为:
- 路径模式设置为
/users/*、/notifications/*、/analytics/*(对应各自的服务路径) - Origin Path必须留空:不要填写
/users或其他路径前缀。如果填了Origin Path,CloudFront会将匹配到的请求路径(比如/users/123)拼接上Origin Path,最终转发为/users/users/123,这就是你遇到的路径重复问题。 - 源域名直接填写对应API Gateway的执行域名(比如
12345abc.execute-api.com),无需附加任何路径。
- 路径模式设置为
2. 配置API Gateway的基础路径映射
因为你已经移除了API Gateway的自定义域名绑定,需要为每个API Gateway设置基础路径映射,让API Gateway识别CloudFront转发过来的路径前缀:
- 对于REST API:在API Gateway控制台的「自定义域名」页面,找到「基础路径映射」,添加一条映射,将基础路径设为
/users(对应Users API GW),关联到对应的API和部署阶段。 - 对于HTTP API:在「部署」->「阶段」页面,编辑阶段设置,将「基础路径」设为
/users。
这样,当CloudFront把/users/123转发到API Gateway执行域名时,API Gateway会自动剥离/users前缀,实际处理的是/123请求。
3. 验证与测试
- 启用CloudFront的访问日志,查看转发到源的请求路径是否正确(应该是
/users/123而非/users/users/123)。 - 测试请求
dev.api.example.com/users/123,确认能正确路由到Users API GW并返回预期结果。
额外注意事项
- 确保CloudFront分发的「备用域名(CNAME)」已添加
dev.api.example.com,并配置了对应的SSL证书(通过ACM在us-east-1区域申请)。 - Route53的别名记录需正确指向CloudFront分发的域名,而非API Gateway。
内容的提问来源于stack exchange,提问作者erinc
相关产品推荐
相关产品推荐

