【问题标题】:Naked Root Domain Hosting裸根域托管
【发布时间】:2015-06-11 12:03:48
【问题描述】:

通常的方法需要将mysite.com 指向www.mysite.com

但假设我希望 重定向。也就是说,我想设置一个裸根域,不设置任何子域,甚至不设置www.mysite.com

我正在使用 Route53 和 S3。大概我只需要一个托管区域 (mysite.com)。我还需要 两个 存储桶(mysite.comwww.mysite.com)还是可以只设置 mysite.com?

【问题讨论】:

  • 您可以使用两个存储桶(一个为空,仅具有重定向规则)或一个存储桶和一个 CloudFront 分配。
  • "你可以使用..." 好吧,但我需要吗?我可以将事情简化为一个存储桶吗?
  • 不是没有重定向 AFAIK

标签: redirect amazon-web-services amazon-s3 amazon-route53


【解决方案1】:

设置以您的域名命名的存储桶。存储桶名称​​必须与浏览器地址栏中显示的地址完全匹配

然后,在 Route 53 中域的根(顶点)创建一个 A 记录,将主机名留空,为 Alias 选择“是”,然后在下拉列表中选择存储桶。

这就是你所要做的。

如果您创建指向域名本身的“www”CNAME,这将不适用于 S3 网站托管,因为存储桶名称与浏览器地址栏中的名称不匹配(以及 CNAME不会导致浏览器将地址栏更改为目标)。

DNS 中指向 S3 的所有内容都必须具有与 DNS 条目匹配的相应存储桶。就是这样设计的。

因为人们通常很容易在网站主机名前输入“www”,您可能应该创建第二个存储桶,将“www.”+您的域名作为存储桶名称,然后配置该存储桶以将所有请求重定向到根域名,并在 S3 上设置额外的 Alias 记录——因为这样如果用户在浏览器中键入“www.example.com”,它将点击第二个存储桶并重定向 - 通过更改浏览器的地址栏 - 到根域...从可用性的角度来看,这几乎肯定是您真正想要的。

【讨论】:

  • 我了解到有一种方法使用一个托管区域、一个存储桶和 四个 记录集用于托管区域。这种新的 (allthingsdistributed.com/2012/12/…) 方法比 2HZ+2B 方法更简单。在 2HZ+2B 中,键入 mysite.com 作为 URL 将位于 www.mysite.com 中。在 1HZ+1B+4RS 方法中,情况正好相反:键入 www.mysite.com 会在 mysite.com 上找到一个。我什至让它以这种方式工作(但只是短暂的;)。请在stackoverflow.com/q/30792472/704972查看并评论图表
  • 您只需要一个托管区域,两条记录,一条在顶点,一条带有 www(当然还有 ns 和 soa)。两个托管区域根本没有意义。 Werner Vogels 只提到了一个桶,因为“www”网站不在 S3 中托管。他创建了一个存储桶(以站点命名,没有 www)并使用它重定向到“www”。如果您希望您的站点托管在 S3 中,请添加另一个存储桶。如果您没有外部服务器来处理从“备用主机名”到“首选主机名”的重定向,那么这里只有一种解决方案,使用 S3。
  • 我不相信你真的让它以这种方式工作 - 我怀疑涉及缓存,所以你从旧配置反弹到新配置,这可以解释为什么它会短暂工作。跨度>
  • 我同意。缓存肯定是个障碍,虽然是错误的成功而不是错误的失败。
  • 此链接docs.aws.amazon.com/gettingstarted/latest/swh/… 是 2 个 Bucket 的基础。我正在寻找两个托管区域(mysite.com 和 www.mysite.com)的 URL 参考。两个托管区域的目标是使 www.mysite.com 成为规范站点。 Facebook 使用类似的东西。如果您指向 facebook.com,您将被定向到 www.facebook.com(即使在 S3 上,实际存储桶将被命名为 facebook.com)。
【解决方案2】:

在对我的一个额外域进行一些测试后进行编辑。资料 下面贴的不正确。我将把它留在这里,这样其他人就不会走这条错误的道路。

--------------------------------


这就是 CNAME 记录为您做的事情。只需为“www”添加一个 CNAME 即可访问 yourdomain.com

www.yourdomain.com 和 yourdomain.com 都可以在浏览器中运行,无需任何重定向。

在 Route53 中它看起来像这样。

【讨论】:

  • 感谢您提供有用的图片。让我确保我理解。此图像适用于托管区域 mydomain.com(不是 www.mydomain.com)。是对的吗?我也不清楚:我需要两个托管区域吗?我需要两个桶还是一个就足够了?
  • 仍然不确定存储桶的名称。我知道它必须与托管区域的名称匹配,但在这种情况下,存储桶应该称为 mysite.com 还是 www.mysite.com?
  • 存储桶应命名为“mysite.com”,托管区域应为“mysite.com”,该托管区域将具有 S3 别名设置和“www”的 CNAME
  • 不正确。浏览器发送的主机名必须与存储桶的名称完全匹配,CNAMEs 不会导致浏览器改变它发送的内容。这就是使用第二个存储桶进行浏览器重定向的全部意义......
  • 感谢@Michael-sqlbot 的信息。我在一个额外的域上进行了测试,但无法让 CNAME 像我想象的那样工作。我在上面编辑了我的答案,以注意信息不正确。您能否发布一个正确答案作为答案,以便提问者可以标记它并且这个问题会被记录下来。
猜你喜欢
  • 1970-01-01
  • 2020-03-09
  • 2014-06-03
  • 2017-05-07
  • 1970-01-01
  • 2011-01-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多