【问题标题】:Are CNAMES slow?CNAMES 慢吗?
【发布时间】:2010-10-19 09:56:26
【问题描述】:

我将 CNAME 与 S3/CloudFront 一起使用来提供一些静态文件,例如 js、css、图像等。

我这样做是为了使存储桶的 URL 更漂亮,因为我认为最好将所有目标都定位到我的网站,以防将来我想移动这些文件,更改应该是透明的。

今天阅读博客,我看到一些人认为 CNAME 不利于速度。

那么,该怎么想呢?

【问题讨论】:

  • @Gabriel Sosa:我知道我的编辑并没有为您的帖子带来新的维度,它只是一些小事。如果您介意,请随时回滚。
  • 感谢您的编辑,我正在努力学习英语,所以这有助于我提高它
  • 你能指点这些博客吗?您可以在互联网上找到许多愚蠢的建议...

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


【解决方案1】:

CNAMES 使用 DNS 查找添加了另一层间接性,因此会产生一些惩罚。但是,一旦通过 DNS 查找 IP,它应该保持缓存状态,并且该客户端不应再发生惩罚。

确保在您的 DNS 条目中正确设置到期时间,您应该不会看到任何明显的延迟。

【讨论】:

  • 我接受了您的答复,因为让我检查了到期时间。 TTY
  • 另一方面,DNS 将“到期”称为完全不同的事情。我相信 Ben S 的意思是“TTL”,而不是“到期”。
  • 我正在建立一个类似的结构。您将 TTL 设置为多少?
【解决方案2】:

根据其他答案,使用 CNAME 只会导致非常小的额外 DNS 解析延迟,并且仅当结果尚未在递归 DNS 服务器的缓存中时。

请注意,DNS 客户端通常不会明确要求 CNAME 记录。通常,他们会询问他们实际需要的任何记录类型 - 对于 Web 浏览器,可以是 AAAAA 记录。

上游服务器的工作就是识别出被查询的域名里面有CNAME条目,然后查找并返回目标结果。在这种情况下,CNAME 记录和所需结果都会在 DNS 响应的 Answer Section 中返回(而不是在其他人回答的 Additional Section 中)。 p>

为了获得最佳性能,最好将 CNAME 的目标托管在与包含 CNAME 的域名相同的权威 DNS 服务器上,以便无需进一步的 DNS 请求即可完成 CNAME 解析。

【讨论】:

    【解决方案3】:

    在大多数情况下,使用 CNAME 的影响非常小。 DNS 响应格式允许服务器在消息中添加一些额外的数据,并且在很多情况下,当您查找 CNAME 记录时,服务器会在附加数据部分添加相应的 A 记录,因此无需再查找。

    【讨论】:

    • 是的,通常是这样。
    • 是的,错了很久。出于安全原因,RFC 2181 于 1997 年 7 月建议不要这样做(第 5.4.1 节,“排名数据”)。
    • 使用 dig 命令查找 www.toyota.com,我得到一个包含四个条目的答案部分:两个 CNAME 和两个 A 记录。你是在告诉我这四个条目不是都在同一个响应包中吗?
    【解决方案4】:

    使用 CNAMES 需要注意的一点是,如果 CNAME 的目标没有被缓存,就需要再次查找,正如 Ben S 所说。

    但是,如果 CNAME 的目标是另一个 CNAME,那么它将需要 YET ANOTHER 查找,令人作呕。

    我建议不要将您的 CNAME 指向另一个 CNAME。

    【讨论】:

      猜你喜欢
      • 2011-10-20
      • 2017-07-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-02-24
      • 1970-01-01
      • 2014-03-26
      相关资源
      最近更新 更多