AWS将域名指向云前端和API

时间:2016-11-17 01:13:41

标签: amazon-web-services amazon-s3 amazon-cloudfront aws-api-gateway domain-name

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

我如何才能这样做www.site.com指向附带云端的S3实例,但www.site.com/api/重定向到我的api?这甚至可能吗?

3 个答案:

答案 0 :(得分:2)

使用DNS无法做到这一点。

相反,您可以使用CloudFront来支持:S3存储桶和API。

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

答案 1 :(得分:1)

如果您使用api.site.com或某些类似的子域代替<hr>,则不需要在APIGW API上指定CF分布。

APIGW已经受到CF发行的推动;自定义域名功能允许您导入附加到现有CF分发的SSL证书。然后,APIGW提供CF分发的域名,以便您可以配置像<html> <table border=1> <table width="100%"> <tr> <td><b>Genus</b></td> <td><b>Model</b></td> <td><b>Variable</b></td> <td><b>Importance</b></td> <td><b>Fit</b></td> </tr> <br> <hr> <tr> <td rowspan="28"><i>Orbicella spp.</i></td> <td rowspan="7">Biomass</td> <td></td> <td></td> </tr> <tr> <td></td> <td></td> </tr> <tr> <td>Density</td> <td>51.3</td> </tr> <tr> <td>Chl_zoox</td> <td>20</td> </tr> <tr> <td>Density</td> <td>10</td> <td>0.52</td> </tr> <tr> <td>Density</td> <td>10</td> </tr> <tr> <td>Density</td> <td>10</td> </tr> <tr> <td rowspan="7">Chlorophyll per <i>Symbiodinium</i></td> <td></td> <td></td> </tr> <tr> <td></td> <td></td> </tr> <tr> <td>Density</td> <td>10</td> </tr> <tr> <td>Density</td> <td>10</td> </tr> <tr> <td>Density</td> <td>10</td> <td>0.52</td> </tr> <tr> <td>Density</td> <td>10</td> </tr> <tr> <td>Density</td> <td>10</td> </tr> <tr> <td rowspan="7"><i>Symbiodinium</i> Density</td> <td></td> <td></td> </tr> <tr> <td></td> <td></td> </tr> <tr> <td>Density</td> <td>10</td> </tr> <tr> <td>Density</td> <td>10</td> </tr> <tr> <td>Density</td> <td>10</td> <td>0.52</td> </tr> <tr> <td>Density</td> <td>10</td> </tr> <tr> <td>Density</td> <td>10</td> </tr> <tr> <td rowspan="7">Growth Rate</td> <td></td> <td></td> </tr> <tr> <td></td> <td></td> </tr> <tr> <td>Density</td> <td>10</td> </tr> <tr> <td>Density</td> <td>10</td> </tr> <tr> <td>Density</td> <td>10</td> <td>0.52</td> </tr> <tr> <td>Density</td> <td>10</td> </tr> <tr> <td>Density</td> <td>10</td> </tr> <tr> <td rowspan="23"><i>Acropora spp.</i></td> <td rowspan="9">Biomass</td> <td></td> <td></td> </tr> <tr> <td></td> <td></td> </tr> <tr> <td></td> <td></td> </tr> <tr> <td></td> <td></td> </tr> <tr> <td>Density</td> <td>51.3</td> <td></td> </tr> <tr> <td>Chl_zoox</td> <td>20</td> </tr> <tr> <td>Density</td> <td>10</td> <td>0.52</td> </tr> <tr> <td>Density</td> <td>10</td> </tr> <tr> <td>Density</td> <td>10</td> </tr> <tr> <td rowspan="7">Chlorophyll per <i>Symbiodinium</i></td> <td></td> <td></td> </tr> <tr> <td></td> <td></td> </tr> <tr> <td>Density</td> <td>10</td> </tr> <tr> <td>Density</td> <td>10</td> </tr> <tr> <td>Density</td> <td>10</td> <td>0.52</td> </tr> <tr> <td>Density</td> <td>10</td> </tr> <tr> <td>Density</td> <td>10</td> </tr> </tr> <tr> <td rowspan="7"><i>Symbiodinium</i> Density</td> <td></td> <td></td> </tr> <tr> <td></td> <td></td> </tr> <tr> <td>Density</td> <td>10</td> </tr> <tr> <td>Density</td> <td>10</td> </tr> <tr> <td>Density</td> <td>10</td> <td>0.52</td> </tr> <tr> <td>Density</td> <td>10</td> </tr> <tr> <td>Density</td> <td>10</td> </tr> </table> </html>这样的子域记录来指向它。

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

答案 2 :(得分:0)

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

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

在新创建的分发中,找到Origins标签,然后选择Create Origin。添加路径/api,将其指向API网关/ ELB / EC2。

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