AWS 将域名指向云端和 API

AWS Point a domain name to both cloud front and an API

所以,我以前用过 Route 53 之类的东西。我现在有一个项目,其中将有一个通过静态页面提供服务但使用 Javascript 来点击 API 的网站。静态页面存储在缓存在云端的 S3 中,api 是一个 API 网关,绑定到一些后端逻辑。

如何使 www.site.com 指向云端附加的 S3 实例,但 www.site.com/api/ 重定向到我的 api?这可能吗?

使用 DNS 无法做到这一点。

相反,您可以使用 CloudFront 前端:S3 存储桶和 API。

  1. 创建 CloudFront 分配。
  2. 将其别名设置为 www.site.com
  3. /api 创建一个 "behaviour" 并让它使用指向您的 API 的原点。
  4. 对其他所有内容都有第二个(默认)行为,并让它使用指向您的 S3 存储桶的原点。
  5. 最后,使用 Route53 指向 www.site.com 到您的 CloudFront 分配。

是的,您可以在 AWS 中执行此操作。

创建一个 CloudFront 分发,将您的域指向 Route53 中的 CloudFront

在新创建的分配中,找到 Origins 选项卡,select Create Origin。添加路径/api,指向API网关/ELB/EC2。

然后再创建一个origin,添加路径/cdn,指向一个s3 bucket。

如果您使用 api.site.com 或某个类似的子域而不是 www.site.com/api,则不需要将 CF 分发指向 APIGW API。

APIGW 前面已经有一个 CF 分布;自定义域名功能允许您导入附加到现有 CF 分发的 SSL 证书。然后APIGW提供了CF分发的域名所以你可以配置一个子域名记录像api.site.com指向它

http://docs.aws.amazon.com/apigateway/latest/developerguide/how-to-custom-domains.html