如何在Route 53中将EBS Flask应用配置到example.com/app路径访问
实现路径路由的核心前提
Route 53是DNS解析服务,仅负责将域名映射到对应IP地址,无法识别、区分URL路径,因此你要求的example.com/app指向EBS、根路径保留原有落地页的需求,无法仅通过Route 53配置完成,需要搭配其他AWS服务实现路径级转发。
推荐实现方案(CloudFront,改动最小)
该方案不需要修改原有主站的部署结构,仅新增一层CDN转发即可完成需求:
- 第一步:先整理两个源站信息
- 原有落地页的源站地址(即当前example.com指向的服务地址,如S3桶域名、EC2公网IP等)
- 你已部署完成的Elastic Beanstalk应用的公网访问域名
- 第二步:创建CloudFront分发
- 在源配置板块分别添加上述两个源站
- 配置缓存行为规则:
- 默认行为(路径匹配规则为
*)绑定原有落地页源站,保证根路径及其他未匹配路径仍走原有落地页 - 新增缓存行为,路径匹配规则填
/app/*,绑定EBS应用对应的源站,可按需配置缓存策略,建议根据应用属性选择是否开启缓存
- 默认行为(路径匹配规则为
- (可选)如果你的EBS应用没有配置
/app前缀路由,可以在该路径行为下配置源请求路径重写,将/app/xxx的请求重写为/xxx透传给EBS,避免应用返回404
- 第三步:绑定SSL证书
在AWS Certificate Manager中申请example.com的公有SSL证书,验证通过后绑定到上述CloudFront分发 - 第四步:修改Route 53配置
将example.com原有的A记录修改为别名记录,指向刚创建的CloudFront分发地址即可。
备选方案(已有ALB场景适用)
如果你原有落地页已经通过Application Load Balancer(ALB)对外提供服务,可以直接在ALB侧配置路径规则,无需新增CloudFront:
- 新增指向EBS应用的目标组,将EBS的实例/服务纳入该目标组
- 在ALB对应的监听器中新增转发规则:匹配路径
/app/*的请求转发到EBS对应的目标组,默认转发规则保留指向原有主站的目标组即可 - Route 53的原有指向ALB的配置无需改动。
注意事项
- CloudFront配置修改后最长需要30分钟全球生效,验证前可以清空本地DNS缓存避免缓存影响
- 若EBS应用内有静态资源、跳转链接的硬编码,需要同步修改为相对路径,或者带上
/app前缀,避免资源加载失败、跳转错误
内容的提问来源于stack exchange,提问作者Tendekai Muchenje
相关产品推荐
相关产品推荐

