0

因此,我之前使用过类似Route 53的内容。现在我有一个项目,其中将有一个网站通过静态页面提供,但使用Javascript来访问API。静态页面存储在缓存在云端的S3中,API是与一些后端逻辑关联的API网关。AWS将域名同时指向云端和API

我该如何做到这一点,因此www.site.com指向云端附加的S3实例,但www.site.com/api/重定向到我的api?这甚至有可能吗?

回答

1

如果使用api.site.com或其他类似的子域而不是www.site.com/api,则不需要在APIGW API处指向CF分布。

APIGW已经被一个CF发行版所占据;自定义域名功能允许您导入附加到现有CF分配的SSL证书。然后,APIGW提供CF分配的域名,以便您可以配置像api.site.com这样的子域记录来指向它。

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

2

使用DNS无法做到这一点。

取而代之,您可以使用CloudFront同时支持:S3存储桶和API。

  1. 创建CloudFront分配。
  2. 将其设置为www.site.com的别名
  3. /api创建一个“行为”,并让它使用指向您的API的原点。
  4. 对于其他任何事情都有第二种(默认)行为,并让它使用指向S3存储桶的原点。
  5. 最后,使用Route53将www.site.com指向您的CloudFront分配。
0

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

创建CloudFront分布,将您的域名指向CloudFront,并将其指定为Route53

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

然后创建另一个原点,添加路径/cdn,将其指向s3存储桶。

+0

嗨,谢谢你的回答。 我这样做,但我有一个严重的问题。尝试使用内容类型application/x-www-form-urlencoded将POST请求直接发送到api作品,但将cloudfront发布指向api会让我在尝试使用它时无法满足错误(例如: stuff.cloudfront.net/test - > unique_id.execute-api.ap-northeast-1.amazonaws.com/test,然后发布stuff.cloudfront.net/test/email以获取/ email api部分) – JapanRob