日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關咨詢
選擇下列產品馬上在線溝通
服務時間:8:30-17:00
你可能遇到了下面的問題
關閉右側工具欄

新聞中心

這里有您想知道的互聯網營銷解決方案
如何減少DNS查找數量及提升查詢速度

您可以對WordPress進行許多不同的優(yōu)化,其中一些比其他優(yōu)化更重要。一個經常被忽視的因素是與DNS相關的查找時間,以及它對您網站的影響有多大。就像TTFB和網絡延遲一樣,在計算總頁面加載時間時,這是一個重要的難題。

所以今天我們將深入探討一些關于如何減少DNS查找并加快它們的速度、為什么應該這樣做以及它如何在WordPress網站的性能中發(fā)揮作用的建議。

什么是DNS Lookup?

要向您展示什么是DNS Lookup,您首先需要了解DNS的工作原理。DNS(域名系統)本質上是互聯網的支柱。解釋DNS如何工作的一個常見參考是將其視為萬維網的電話簿。您訪問的每個網站和域都映射到一個IP地址。

當您在地址欄中鍵入Google.com時,您的ISP會執(zhí)行DNS查詢以請求與域關聯的名稱服務器。然后由服務器在后臺完成到IP地址的映射,然后您就可以使用域名來訪問它。如果沒有DNS,您將必須輸入類似216.58.217.206的內容才能訪問Google。那不是很好玩嗎!

DNS的工作原理

當您瀏覽網站時,必須在下載任何內容之前為請求的每個域進行DNS查找。但是,不必對每個資源都執(zhí)行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.ink

Pingdom中的DNS查找

以下是上述請求在Pingdom網站速度測試工具中的顯示方式。DNS表示為粉紅色條,以毫秒為單位。當您第一次通過Pingdom運行您的網站時,它會執(zhí)行新的查找,并且必須查詢每個域的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信息并且不必再次執(zhí)行查找。這就是為什么您的網站在通過Pingdom多次運行后顯示速度更快的原因之一。正如您在下面的屏幕中看到的,在第二個測試中,CDN URL上的DNS查找時間為0毫秒。這是很多人誤解的一個領域。但別擔心,我們將在下面深入研究DNS緩存。

Pingdom中的DNS緩存

GTmetrix中的DNS查找

每個網站速度測試工具的工作方式略有不同,但幾乎所有工具都會為您計算DNS查找時間。以下是相同請求在GTmetrix中的顯示方式。DNS用綠色條表示,以毫秒為單位。

GTmetrix中的DNS查找

WebPagetest中的DNS查找

這是一個使用WebPageTest的示例。他們實際上對您的請求詳細信息有一個快速概覽,您可以在其中單擊“DNS查找”列并按最高響應時間對其進行排序。我們以通過該工具運行usatoday.com為例,僅DNS查找時間就花了6.5秒!

由于所有的外部請求,許多這些新聞網站沒有被高度優(yōu)化是很常見的。但是正如您所看到的,他們站點上的DNS查找時間可能比大多數人的整個站點花費的時間更長。這就是DNS很重要的原因。

較長的DNS查找時間(網頁測試)

如何減少和加速DNS查找

既然您對DNS的工作原理有了更多的了解,我們將向您展示一些關于如何減少DNS查找并在您的WordPress站點上加快查找速度的建議。在某些網站速度測試工具中,這有時也稱為“最小化DNS查找”。

最小化Pingdom中的DNS查找

技巧 1 – 使用快速DNS提供商

重要的是要了解,就像托管一樣,有越來越快的DNS提供商。這應該是您修復的第一件事。

通常,GoDaddy和Namecheap等域注冊商提供的免費DNS速度非常慢。DNS提供商通常像CDN一樣工作,他們在全球擁有多個POP。大型DNS提供商,如Amazon、Cloudflare、Dyn和DNS Made Easy,都擁有專門為具有低延遲環(huán)境的DNS設計的龐大基礎設施。

我們進行了一些測試來比較一些流行的DNS提供商的速度。我們使用了KeyCDN的性能工具以及SolveDNS的速度測試,取了平均值。速度是從全球多個地點測量的。如您所見,除了Cloudflare,免費DNS提供商的速度肯定較慢。這就是為什么如果您認真對待您的業(yè)務和網站,我們強烈建議您使用優(yōu)質DNS提供商。

DNS提供商速度

上述某些提供商在某些地區(qū)也比其他提供商更快,因此確定您需要快速DNS查找時間的區(qū)域(區(qū)域或全球)非常重要。 DNSPerf是另一種較新的DNS速度比較工具,您可以在選擇提供商時使用。您知道嗎,您也可以使用Cloudflare的DNS而無需其CDN功能?

技巧 2 – 更改TTL值以利用DNS緩存

值得慶幸的是,就像我們上面提到的,由于DNS緩存,您不必擔心在每個頁面加載時都會發(fā)生查找。這真的是關于第一次請求。DNS緩存的工作方式與緩存WordPress站點的方式類似。DNS從緩存中提供,直到它過期(這是刷新DNS緩存的方法)。DNS緩存的長度由他們所謂的生存時間 (TTL) 值決定。TTL越高,瀏覽器執(zhí)行另一次DNS查找的可能性就越小。

可以通過您的域注冊商或第3方DNS提供商更改TTL值,以改善您的 DNS 緩存時間。需要注意的是,ISP也會緩存DNS。下面是一些常見的TTL值。

  • 300 秒= 5 分鐘
  • 1800 秒= 30 分鐘
  • 3600 秒= 1 小時
  • 43200 秒= 12 小時
  • 86400 秒= 24 小時

Cloudflare TTL

30分鐘到一個小時通常是最常用的TTL值。但是,有些還將其TTL設置得非常低以允許快速更新。Cloudflare是一個示例,如果您使用其自動TTL,則默認為5分鐘。查看不同類型的DNS記錄并根據它們更改的頻率相應地設置它們也很有用。下面是一個例子:

  • A和AAAA記錄:更頻繁地更改,從5分鐘到一個小時通常都可以
  • CNAME記錄:幾乎從不改變,更高的TTL(如24小時)通常是可以的
  • NS記錄:幾乎從不改變,更高的TTL,如24小時通常是可以的
  • MX記錄:不經常更改,像12小時這樣的高TTL通常是可以的
  • TXT記錄:不經常更改,12小時之類的高TTL通常就可以了

對于TTL,確實沒有正確或錯誤的答案。但它可以通過選擇與您的站點上的更改頻率一致的TTL來改善您的DNS查找時間。

技巧 3 – 減少域(主機名)數量

減少站點上DNS查找的最簡單方法是簡單地刪除查詢不同主機名的請求。 請記住,DNS查找與請求數量無關,而與不同域的數量有關。通過Pingdom之類的工具運行您的WordPress網站,并確定每個請求是否真的有必要。由于DNS是主機名到IP的映射,您可能想知道為什么人們不直接指向IP?這是因為IP地址可以頻繁更改,而主機名則不會。

技巧 4 – 使用具有更快DNS的替代服務

雖然簡單地減少域(主機名)的數量說起來容易做起來難,但我們建議首先查看那些具有更高 DNS 查找時間的域名。例如,在我們下面測試的這個站點中,我們可以很容易地發(fā)現Crazy Egg跟蹤腳本的DNS查找時間比其他站點長得多。這很可能是因為他們的DNS提供商不如其他提供商快。

 

查找較長的DNS查找時間

在這種情況下,您或許可以查看其他提供商,例如Hotjar,它們提供相同的服務,但可能正在使用更快的DNS提供商。在向WordPress站點添加外部服務時,評估其性能非常重要。

技巧 5 – 在CDN上移動和托管資源

減少DNS查找的最簡單方法之一是將盡可能多的資源轉移到CDN提供商。如果您通過Pingdom運行您的站點,您可以按域查看請求總數。正如您在此示例中看到的,93.8%的請求都指向CDN URL。有一個請求給主機,一個請求給Google Analytics。通過將盡可能多的資源移動到CDN,這減少了涉及的DNS查找次數,從而減少了加載時間。

按域請求

當然,現在并不總是可以將所有內容都移動到您的CDN??倳幸恍┩獠抠Y源或服務需要您從他們的服務器加載它們。但我們建議您瀏覽您的網站。很多時候,我們看到WordPress用戶有很多資源沒有正確托管在他們的CDN上。通過這樣做,您還可以更好地利用HTTP/2和并行化。以下是我們經常看到的一些可以改進的資源:

Font Awesome

我們偶爾會在WordPress網站上看到插件開發(fā)人員和主題包括Font Awesome,但有時會以這樣的方式將它排入隊列,默認情況下,像CDN啟用程序這樣的插件將無法捕獲它。在這種情況下,我們建議與開發(fā)人員聯系,詢問他們如何從CDN加載它。

Font Awesome的另一個常見情況是它有時從默認的BootstrapCDN (MaxCDN)加載。雖然這沒有任何問題,但它添加了另一個您不需要的DNS查找。在大多數情況下,從您自己的CDN加載Font Awesome會更好,這樣就不會再進行查找了。

Gravatar

如果您使用WordPress原生評論,您可能需要額外查找secure.gravatar.com以加載gravatars。一種簡單的解決方案是使用延遲加載評論插件。雖然這不會減少DNS查找,但會延遲它直到用戶向下滾動頁面。因此,從某種意義上說,您正在減少首頁加載時的DNS查找。請務必查看我們的博客文章,了解其他加快評論速度的方法。

谷歌字體

使用Google Fonts,您有一個額外的DNS請求來查找fonts.googleapis.com以獲取CSS文件。然后,您可以向fonts.gstatic.com發(fā)出其他請求以下載字體文件。當您在本地托管所有請求時,所有請求都來自同一個域或CDN,并且很可能您不需要另一個CSS文件,因為它將在您的WordPress主題的CSS文件中。這樣做有利有弊,但請查看我們關于如何在本地托管字體的深入文章。

谷歌字體DNS查找

Font Awesome、Gravatars和Google Fonts只是通過確保它們從CDN加載來減少DNS查找的幾個示例。您目前是否正在從CDN加載所有可能的內容?看看總是好的。

技巧 6 – 利用DNS預取

另一個加速DNS的技巧是使用DNS預取。這允許瀏覽器在后臺在頁面上執(zhí)行DNS查找。您可以通過在WordPress網站的Header中添加一些代碼行來實現。請參閱下面的一些示例。



 

除iOS Safari、Opera Mini和Android瀏覽器外,所有主要瀏覽器也支持DNS預取 。

DNS預取瀏覽器支持

或者,如果您運行的是WordPress 4.6或更高版本,您可能需要使用資源提示。開發(fā)人員可以使用wp_resource_hints過濾器為dns-prefetch、preconnect、prefetch或prerender添加自定義域和URL。

技巧 7 – 延遲JavaScript的加載

如果您推遲JavaScript的加載,這可以防止在文檔完全加載之前加載內容。這不會減少所需的DNS查找次數,但會阻止立即調用它們,從而可以加快用戶體驗。Varvy對如何延遲JavaScript有很好的解釋。他在他的網站上使用的一個例子是他的Google Analytics腳本,因為它沒有理由加載到首屏。

在WordPress中,您可以使用Async JavaScript等免費插件來延遲JavaScript的加載。但是,重要的是要知道您很可能必須瀏覽并列出您希望從延遲應用中排除的任何腳本。為什么?因為需要一些JavaScript才能在首屏呈現。Async JavaScript也與Autooptimize插件完全兼容。

在WordPress中推遲JavaScript

請務必查看我們關于如何消除阻塞渲染的JavaScript和CSS的深入文章。

技巧 8 – 利用ANAME記錄和CNAME Flatten

還有來自DNS Made Easy和Cloudflare等提供商的額外記錄,可以幫助減少后端的請求數量。

使用DNS輕松記錄ANAME

ANAME記錄為您提供CNAME記錄的功能,但在根級別。例如,假設您為www.domain.com配置了CNAME。www必須首先解析為主機名,然后解析為IP地址。這需要兩個請求。使用ANAME記錄,您可以跳過這些請求之一!如果設置正確,這些也可以與CDN結合使用。

CNAME

ANSWER SECTION:
www.domain.com. 1799 IN CNAME domain.com.
domain.com. 1799 IN A 192.168.1.2

ANAME

ANSWER SECTION:
www.domain.com. 1799 IN A 192.168.1.2

然而,這并不總是正確的。如果主機名在同一DNS區(qū)域中,則可能會在同一請求中檢索A記錄。

使用Cloudflare的CNAME Flattening

與ANAME記錄類似,Cloudflare在區(qū)域頂點(或根)為其客戶提供自動CNAME Flattening。

小結

DNS通常是那些被忽視的性能因素之一,但如果您不小心,它很容易占整個加載時間的很大一部分。了解DNS的工作原理很重要,那里有越來越快的提供商,以及如何減少查找以加快站點速度。


網頁標題:如何減少DNS查找數量及提升查詢速度
網頁地址:http://m.5511xx.com/article/dhgsjie.html