将多个子域映射到同一个S3-bucket

时间:2011-05-25 21:10:44

标签: amazon-s3 dns amazon-web-services amazon-cloudfront

有没有办法将多个(数千个)子域映射到一个s3-bucket? 如果是这样,还可以将其映射到每个子域的存储桶中的特定路径?

我希望test1.example.com映射到mybucket / test1和test2.example.com以映射到mybucket / test2。

我知道最后一部分不可能使用普通的dns记录,但也许有一些漂亮的Route 53功能?

2 个答案:

答案 0 :(得分:13)

直接使用S3是不可能的。您只能将1个子域与S3存储桶一起使用。

但是,您可以将多个子域映射到Cloudfront分发。

更新(感谢下面的@SimonHutchison's comment

您现在可以将最多100个备用域映射到Cloudfront 分发 - 请参阅http://docs.aws.amazon.com/general/latest/gr/aws_service_limits.html#limits_cloudfront

您还可以使用通配符将任何子域映射到您的发行版:

  

在备用域名中使用*通配符

     

添加备用域名时,可​​以使用*通配符   域名的开头而不是指定子域名   个别。例如,使用备用域名   * .example.com,您可以在对象网址中使用以example.com结尾的任何域名,例如www.example.com,   product-name.example.com和marketing.product-name.example.com。该   无论域名是什么,对象的名称都是相同的   例如:

     

www.example.com/images/image.jpg

     

product-name.example.com/images/image.jpg

     

marketing.product-name.example.com/images/image.jpg

答案 1 :(得分:4)

从2012年10月开始,亚马逊推出了一种处理S3存储桶重定向(HTTP 301)的功能。您可以阅读release notes here并通过控制台/ API参考this link进行配置。

来自AWS S3 docs:

  
      
  • 重定向所有请求如果您的根域是example.com,并且您希望同时为http://example.comhttp://www.example.com提供请求   {{3}},您可以创建两个名为的桶   example.com和www.example.com,仅维护网站内容   例如,一个存储桶,例如example.com,并将另一个存储桶配置为   将所有请求重定向到example.com存储桶。

  •   
  • 高级条件重定向您可以根据特定对象键名称或前缀来有条件地路由请求   请求,或根据响应代码。例如,假设   您删除或重命名存储桶中的对象。你可以添加一个   将请求重定向到另一个对象的路由规则。假设   您想要使文件夹不可用。您可以添加路由   规则将请求重定向到另一个页面,这解释了原因   该文件夹不再可用。您还可以添加路由规则   通过路由返回的请求来处理错误条件   错误将被处理错误到另一个域。

  •