将 Amazon 的 CloudFront 指向 A 记录而不是 CNAME

Posted

技术标签:

【中文标题】将 Amazon 的 CloudFront 指向 A 记录而不是 CNAME【英文标题】:Pointing Amazon's CloudFront at an A record not a CNAME 【发布时间】:2011-02-26 10:17:11 【问题描述】:

我找到了将我的域的 CNAME 指向 Amazon 的 CloudFront 服务的说明,但理想情况下我想指向根名称(A 记录名称)。例如,foo.com 而不是 www.foo.com。这可能吗?

【问题讨论】:

【参考方案1】:

您可以使用他们的 Route 53 服务将区域顶点(即 example.com)指向 AWS 上的 CloudFront 分配。只需登录您的 CloudFront 分配并将备用域名 (CNAME) 设置为您的域(例如 example.com 和/或 www.example.com)。然后在 Route 53 中,为您的域创建一个托管区域,然后创建一个别名记录,选择 CloudFront 分配作为目标。您还可以为任何子域创建第二个别名记录,例如 www.example.com。注意:您还需要通过域名注册商更改名称服务器。

来自 Route 53 常见问题解答:

问。我可以将我的区域顶点(example.com 与 www.example.com)指向我的 Amazon CloudFront 分发?

是的。 Amazon Route 53 提供了一种特殊类型的记录,称为“别名” 记录,可让您将您的区域顶点 (example.com) DNS 名称映射到您的 Amazon CloudFront 分配(例如,d123.cloudfront.net)。知识产权 与 Amazon CloudFront 终端节点关联的地址因 您的最终用户的位置(为了将最终用户引导到 最近的 CloudFront 边缘站点)并且可能随时更改,因为 放大、缩小或软件更新。 53 号公路回应 对别名记录的每个请求都带有 IP 地址 分配。 Route 53 不对 Alias 记录的查询收费 映射到 CloudFront 分配。列出了这些查询 作为 Amazon Route 53 使用报告中的“Intra-AWS-DNS-Queries”。

有关更多信息,请参阅 AWS 文档:

Route 53: Routing Queries to an Amazon CloudFront Distribution Route 53: Creating Alias Resource Record Sets

【讨论】:

需要注意的一点是,您必须将您的***域添加到 CloudFront 配置中的“CNAMES”列表(即使它不是 CNAME),否则它不会显示为在 Route 53 的下拉列表中选择别名。我被卡住了一段时间。 亚马逊应该修复他们的用户界面,因为虽然您可以使用 A 记录,但该字段称为备用 Cnames,并且帮助没有明确说明您可以使用别名。 我们可以在不使用 Amazon Route 53 的情况下执行此操作吗?我现有的 DNS 提供商支持 APEX 记录。【参考方案2】:

指向www.example.com仍然可以通过A记录完成,但你必须将它指向一个IP地址,它与“www”或前面的任何其他内容无关。

CNAME 和 A-Records 之间的区别仅在于 CNAME 指向另一个名称,而该名称又必须由 DNS 查找,而 A-record 只需要一次查找并直接指向 IP 地址。

也就是说,您很快就会明白为什么在这种类型的云托管中使用 A 记录可能是一个坏主意或不可能。亚马逊使用多个 IP 地址,您不会事先知道这些 IP 地址是什么。 DNS 更改很慢。因此,除非您有一个不变的特定 IP 地址,否则使用 A 记录根本行不通。查找具有固定 IP 地址的托管服务,您可以使用 A 记录。

在性能或可达性方面,CNAME 和 A 记录之间只有微小的差异。

编辑: 正如 SLaks 指出的那样,似乎最好坚持“旧规则”来为您的根域名使用 A-Record。但是您会发现,有时您将别无选择,这取决于您的托管服务提供商允许您做什么。幸运的是,如今,几乎没有什么可以阻止您这样做(使用 CNAME)。

【讨论】:

错了。 CNAME 不应用于根域,因为一些较旧的电子邮件服务器无法处理它们。事实上,有些注册商不允许您为域根创建 CNAME。 真的吗?我读的是相反的。但无论如何,你能更精确吗?虽然我使用 A 记录,但我知道有大量使用 CNAME 记录的网站。 Wikipedia,不是最小的,对所有本地版本都使用 CNAME 记录(即 nl.wikipedia.org 是 CNAME)。也许您所说的“旧”是指 1990 年代之前? 去年我亲眼看到一个电子邮件服务器无法向我的域发送邮件,因为根域是 CNAME。 DNS RFC (RFC1033) 要求“区域顶点”(有时称为“根域”或“裸域”)是“A 记录”。 @Abel nl.wikipedia.org 不是根域,它是子域,您可以为没有问题的人使用 CNAMES。但是根域上的 CNAME,即。不允许使用 wikipedia.org。

以上是关于将 Amazon 的 CloudFront 指向 A 记录而不是 CNAME的主要内容,如果未能解决你的问题,请参考以下文章

无法将SSL证书与Amazon Cloudfront相关联

为啥需要 Amazon S3 和 Cloudfront?

将文件推送到 Amazon Cloudfront:可能吗?

防止 Amazon Cloudfront 盗链

Amazon S3 无法通过 Cloudfront 上传文件

Amazon Cloudfront - 将 CDN 域名传递到源服务器