每个请求的 DNS 解析

标签 dns ip resolve

有谁知道,或者更好地有任何数据来支持它,每次“正常”使用该网站会发生多少个 DNS 解析。在有人开始问我认为网站的正常使用方式是什么之前,你们有什么想法和数据来支持它。

换句话说,假设用户每月访问一个网站 20 天,他每天都会浏览大约 10 个页面,因此假设他每天发出大约 1000 个页面请求。这意味着每天 20,000 个页面请求。

知道许多 DNS 会解析谁,因为我知道浏览器和操作系统现金 DNS 解析,但我不知道他们将其保留多长时间。

最佳答案

嗯..这是一个很难正确回答的问题,因为如果你以这种方式问的话,这是一个棘手的问题。

您确实无法通过考虑 HTTP 请求来衡量这一点,因为可能发生很多事情,导致您的数字发生变化。例如,ISP 或用户刷新其 DNS 缓存,因此需要新的请求来获取您的域的 IP 地址。此外,某些客户端实现可能会选择不遵守您的过期时间。我们不谈slashdot effect这确实会导致您的服务器瘫痪!此外,如果您处理邮件,您可能会收到对 MX 记录的请求,并且您还可能会因某种原因收到邪恶实体发出的大量无效 DNS 请求,这可能会给服务器带来一些不希望的负载。

现在,关于过期时间:DNS 服务器可以配置为单独为每个 DNS 记录设置 TTL(生存时间)(如何设置取决于您的特定服务器和/或托管解决方案)。

如果您不希望更改域名的IP地址,那么您可以设置一个非常高的TTL(以秒为单位),例如86400,相当于1天。这意味着当 ISP 查询您的 DNS 以获取该域的 IP 地址时,它将在为其发出新的 DNS 请求之前保留该记录 1 天。

通常情况下,最终用户会查询他们使用的 ISP 的 DNS,因此他们会首先查询(如果需要)ISP 的 DNS 而不是您的 DNS,然后 ISP 将决定(基于 TTL)是否查询您自己的 DNS需要 DNS。如果没有,他们会将缓存的记录提供给客户端。这将大大减少您向自己的服务器发出的请求。

有时,DNS 记录用于制定循环解决方案,为每个 DNS 请求返回一个新的 IP 地址。在这种情况下,TTL 可能会短得多。另一种方法是处理相同 IP 地址的请求,但将它们负载平衡到“内部”服务器,而不需要公共(public) IP 地址。

您可以在此处阅读有关 DNS ttl 的更多信息:http://www.simpledns.com/help/v51/index.html?df_ttl.htm

希望对你有帮助!

关于每个请求的 DNS 解析,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11002739/

相关文章:

php - 从 $_SERVER ['SERVER_NAME' 中删除子域]

macos - osx Mavericks : dnsmasq stops working

dns - 在 github 页面上重定向 TLD 和 'blog' 子域

email - 允许客户在 SAAS 应用程序中从他们自己的域发送

batch-file - 将 IP 地址写入文件

ios - 为什么 IP 地址的可达性永远不会被回调?

c - IP作为数字没有通常的功能?

apache-kafka - kafka bootstrap.servers 作为具有多个 IP 的 DNS A 记录

javascript - 推迟/推迟 promise 解决

javascript - 为什么我不能直接在SetTimeout函数中调用resolve()来处理Promises