如何减少DNS查询时间提高网站打开速度

有很多不同的优化,你可以使wordpress的,有的比其他更重要。经常被忽视的一个因素是与dns相关的查询时间,以及它对您网站的影响程度。就像ttfb ?和网络延迟一样,在计算您的总页面加载时间时,这是一个难题。所以今天我们将深入探讨如何减少dns查询并加快速度,为什么你应该,以及它如何发挥你的wordpress网站的性能。
什么是dns查找?为了向您展示什么是dns查询,您需要先了解dns的工作原理。dns(域名系统)本质上是互联网的中坚力量。解释dns如何工作的常见参考是将其看作万维网的电话簿。您访问的每个网站和域都被映射到一个ip地址。
当您在地址栏中输入google.com时,您的isp会执行dns查询以请求与该域名关联的域名服务器。然后到服务器的幕后完成到ip地址的映射,然后允许您使用域名访问它。没有dns,你必须输入类似于216.58.217.206的内容才能访问google。这不是很有趣!
dns如何工作
当您浏览网站时,必须先下载任何请求之前,请求每个域名的dns查询。但是,dns查找不必在每个资源上执行。举个例子,假设我们有以下的http请求:
https://wpdev.ink/ https://js.stripe.com/v3/ https://cdn.wpdev.ink/wp-content/themes/twentyseventeen/assets/images/header.jpg https://cdn.wpdev.ink/wp-content/themes/twentyseventeen/assets/js/skip-link-focus-fix.js https://cdn.wpdev.ink/wp-content/themes/twentyseventeen/assets/js/global.js https://cdn.wpdev.ink/wp-content/themes/twentyseventeen/assets/js/jquery.scrollto.js https://cdn.wpdev.ink/fonts/open-sans-v13-latin-regular.woff2 https://cdn.wpdev.ink/fonts/open-sans-v13-latin-700.woff2尽管上面总共有八个http请求,但只有三个唯一的域。这意味着有三个dns查找。
https://wpdev.ink https://js.stripe.com https://cdn.wpdev.inkpingdom中的dns查找以下是pingdom网站速度测试工具中出现的上述请求。dns表示为粉红色条,以毫秒为单位。当您第一次通过pingdom运行您的网站时,它会执行一个全新的查询,并且必须查询每个域的dns记录才能获取ip信息。请注意,它不必在cdn.wpdev.ink域上多次查询dns。这就是dns的工作原理。它只需要查询一次域名。所以总共有8个请求,但只有3个dns查询。
这种dns查找会导致额外的加载时间,因为在dns查询完成之前,无法加载任何内容。注意下面的一个cdn url上的dns查询超过了300毫秒。这不包括在wpdev.ink或js.stripe.com上的查找。所以你可以看到随着时间的推移,这可以加起来。
pingdom中的dns查询
当您不止一次通过pingdom运行您的网站时,它会缓存dns,因为它已经知道ip信息,不必再次执行查找。这是您的网站多次运行pingdom后出现速度较快的原因之一。正如您在下面的屏幕中看到的那样,在第二次测试中,cdn url上的dns查找时间为0毫秒。这是很多人曲解的一个领域。但是不要担心,我们会在下面的dns缓存中进一步介绍。
pingdom中的dns缓存
gtmetrix中的dns查找每个网站的速度测试工具略有不同,但几乎所有的人都为您计算dns查找时间。下面是在gtmetrix中出现的相同请求。dns表示为绿色条,以毫秒为单位。
gtmetrix中的dns查找
webpagetest中的dns查找这是一个使用webpagetest的例子。他们实际上可以快速查看您的请求详细信息,您可以在其中单击“dns查找”列并按最高响应时间对其进行排序。我们通过该工具运行usatoday.com作为例子,单单dns查询时间花了6.5秒!
许多这些新闻网站由于其所有的外部请求而不被高度优化是相当普遍的。但是,正如你所看到的,他们网站上的dns查询时间可能比大多数人的整个网站花费更多的时间。这就是为什么dns很重要。
长时间的dns查询时间(网页测试)
如何减少和加速dns查找现在您对dns的工作原理有了一些了解,我们将向您介绍如何减少dns查询并加快您的wordpress网站的速度。在一些网站速度测试工具中,这有时也被称为“最小化dns查找”。
最大限度地减少pingdom中的dns查询
技巧1 – 使用快速dns提供程序与托管服务一样,理解这一点非常重要,那里有更快更慢的dns提供商。这应该是你修复的第一件事情之一。
通常,域名注册商(如godaddy和namecheap)提供的免费dns非常缓慢。dns提供商通常像cdn一样工作,他们在全球拥有多个pop。像亚马逊,cloudflare,dyn和dns made easy这样的大型dns提供商都拥有专门为低延迟环境设计的大规模基础设施。
我们进行了一些测试来比较一些流行的dns提供商的速度。我们使用keycdn的性能工具以及solvedns速度测试,并取平均值。速度来自全球多个地点。正如你所看到的,除了cloudflare,免费的dns提供商肯定是慢的。这就是为什么如果你是认真的关于你的业务和网站,我们强烈建议去与一个优质的dns提供商。
dns提供商的速度
上述某些提供商在某些地区也比其他提供商快,因此确定您需要在哪些地区或全球范围内快速查找dns是非常重要的。?dnsperf是另一个较新的dns速度比较工具,您可以在选择提供商时使用。您是否知道,您也可以使用cloudflare的dns而不使用? cdn功能?
技巧2 – 更改ttl值以利用dns缓存值得庆幸的是,正如我们上面提到的,由于dns缓存,你不必担心在每一个页面加载发生查找。这实际上是第一次请求。dns缓存的工作方式与缓存wordpress站点的方式类似。dns从缓存中提供,直到它到期。dns高速缓存的长度取决于他们所谓的生存时间(ttl)值。ttl越高,浏览器执行另一次dns查找的可能性就越小。
您的域名注册商或第三方dns提供商可以更改ttl值,以改善您的dns缓存时间。值得注意的是isp也会缓存dns。以下是一些常见的ttl值。
300秒 = 5分钟1800秒 = 30分钟3600秒 = 1小时43200秒 = 12小时86400秒 = 24小时
cloudflare ttl
30分钟到1小时通常是最常用的ttl值。但是,有些设置的ttl非常低,以便进行快速更新。cloudflare是一个例子,如果您使用自动ttl,则默认为5分钟。查看不同类型的dns记录并根据其更改的频率对其进行相应设置也是有益的。这里是一个例子:
a和aaaa记录:更频繁地更改,从5分钟到1小时的任何时间通常都可以cname记录:几乎不会改变,像24小时这样的更高的ttl通常是可以的mx记录:更换次数少,一个像12小时的高ttl通常可以txt记录:变化较少,高12个小时的ttl通常可以说到ttl,真的没有对错的答案。但是,通过选择与您的网站更改频率相符的ttl,它可以改善您的dns查找时间。
技巧3 – 减少域名(主机名)减少您网站上dns查询的最简单方法是简单地摆脱查询不同主机名的请求。?请记住,使用dns查找不是关于请求的数量,而是关于不同域的数量。通过像pingdom这样的工具运行你的wordpress站点,并确定每个请求是否真的有必要。由于dns是一个主机名到ip的映射,你可能想知道为什么人们不只是指向一个ip呢?这是因为ip地址可以频繁更改,而主机名不会。
提示4 – 使用更快的dns使用替代服务虽然简单地减少域名(主机名)的数量说起来容易做起来难,但我们建议先查看那些dns查询时间更长的域名。例如,在下面我们测试的这个站点中,我们可以很容易地发现到crazy egg跟踪脚本的dns查询时间比其他时间长很多。这很可能是由于他们的dns提供商不如其他一些dns提供商那么快。
找到很长的dns查找时间
这是一个场景,也许你可以看看其他提供商,如提供相同服务的hotjar,但也许正在使用更快的dns提供商。将外部服务添加到您的wordpress网站,评估其性能可能非常重要。
技巧5 – 在cdn上移动和托管资源减少dns查询的最简单方法之一是将尽可能多的资源移动到您的cdn提供商。如果您通过pingdom运行您的网站,则可以按域查看请求的总数。正如你在这个例子中看到的,93.8%的请求是到cdn url的。向主机发送一个请求,向google analytics发送一个请求。通过将尽可能多的资源移动到cdn,这减少了涉及的dns查找次数,因此减少了加载时间。
请求的域名
当然,现在并不总是可以把所有的东西都转移到cd
上一个:网站制作内链添加的关键
下一个:建设手机网站对传统企业的影响
华亭网站建设,华亭做网站,华亭网站设计