比較有用啊
最近一段時間看到幾篇關(guān)于網(wǎng)站加速的文章,通篇都在講頁面優(yōu)化、服務(wù)器優(yōu)化、網(wǎng)絡(luò)優(yōu)化這些東西(當(dāng)然我不否認(rèn)這些很重要),但幾乎所有文章都忽略了決定網(wǎng)站訪問速度的一個重要因素:DNS速度,糟糕的DNS解析速度可能讓你的網(wǎng)站在別人的網(wǎng)站完全打開的時候還沒完成域名解析。即時偶爾有人提到這個問題,也只是輕描淡寫的一句:給域名使用高速優(yōu)質(zhì)的NS服務(wù)器。
問題是,沒有真正意義上的高速NS和DNS服務(wù)器。就像這里提到的,在國內(nèi)速度表現(xiàn)尚可的萬網(wǎng),在國外的評測網(wǎng)站中得分很低,而在國外評測拿到最高分的Godaddy,在國內(nèi)使用時速度比萬網(wǎng)快不了多少。如果你有錢像Google、微軟那樣在全世界部署大量的CDN加速服務(wù)器和NS服務(wù)器,那當(dāng)然沒問題,問題是這對絕大部分網(wǎng)站來說都不可能,國內(nèi)國外不是不可兼得,而是很難。
也許有人以為可以通過給域名指定兩個NS記錄(一個國內(nèi)一個國外)來提高解析速度,但這也是不可能的,只有在DNS服務(wù)器從第一個NS服務(wù)器那里獲取記錄失敗時才會向第二個NS服務(wù)器發(fā)送解析請求。我所知道的一個最廉價和有效的提速方法,就是修改域名記錄的TTL值。
什么是域名的TTL值?
TTL(Time-To-Live),就是一條域名解析記錄在DNS服務(wù)器中的存留時間。當(dāng)各地的DNS服務(wù)器接受到解析請求時,就會向域名指定的NS服務(wù)器發(fā)出解析請求從而獲得解析記錄;在獲得這個記錄之后,記錄會在DNS服務(wù)器中保存一段時間,這段時間內(nèi)如果再接到這個域名的解析請求,DNS服務(wù)器將不再向NS服務(wù)器發(fā)出請求,而是直接返回剛才獲得的記錄;而這個記錄在DNS服務(wù)器上保留的時間,就是TTL值。
TTL值設(shè)置的應(yīng)用:
一.增大TTL值,以節(jié)約域名解析時間,給網(wǎng)站訪問加速。
一般情況下,域名的各種記錄是極少更改的,很可能幾個月、幾年內(nèi)都不會有什么變化。我們完全可以增大域名記錄的TTL值讓記錄在各地DNS服務(wù)器中緩存的時間加長,這樣在更長的一段時間內(nèi),我們訪問這個網(wǎng)站時,本地ISP的DNS服務(wù)器就不需要向域名的NS服務(wù)器發(fā)出解析請求,而直接從緩存中返回域名解析記錄。
國內(nèi)和國際上很多平臺的TTL值都是以秒為單位的,很多的默認(rèn)值都是3600,也就是默認(rèn)緩存1小時,這個值實(shí)在有點(diǎn)小了,難道會有人一個小時就改一次域名記錄嗎?你可以根據(jù)自己的需要把這個值適當(dāng)?shù)臄U(kuò)大,例如要緩存一天就設(shè)置成86400。Godaddy的TTL設(shè)置比較直觀,但總共只有5個值可以選定,即時切換到高級設(shè)置模式也是如此,有點(diǎn)死板了。
環(huán)境所迫,LifeTyper.com的TTL值是設(shè)置成了最大值1周,設(shè)置成更大的值可能會有寫不必要的麻煩,例如當(dāng)你要更換空間時,這些舊的記錄要很久才過期并被更新。
二.減小TTL值,減少更換空間時的不可訪問時間。
更換空間99.9%會有DNS記錄更改的問題,因?yàn)榫彺娴膯栴},新的域名記錄在有的地方可能生效了,但在有的地方可能等上一兩天甚至更久才生效。結(jié)果就是有的人可能訪問到了新服務(wù)器,有的人訪問到了舊服務(wù)器。僅僅是訪問的話,這也不是什么大問題,但如果涉及到了郵件發(fā)送,這個就有點(diǎn)麻煩了,說不定哪封重要信件就被發(fā)送到了那已經(jīng)停掉的舊服務(wù)器上。
為了盡可能的減小這個各地的解析時間差,合理的做法是:
1.先查看域名當(dāng)前的TTL值,我們假定是1天。
2.修改TTL值為可設(shè)定的最小值,可能的話,建議為1分鐘,就是60。
3.等待一天,保證各地的DNS服務(wù)器緩存都過期并更新了記錄。
4.設(shè)置修改新記錄,這個時候各地的DNS就能以最快的速度更新到新的記錄。
5.確認(rèn)各地的DNS已經(jīng)更新完成后,把TTL值設(shè)置成你想要的值,TTL=60還是太小了點(diǎn)。
記住,這一切都能起作用的前提,是那些DNS服務(wù)器完全遵守這些標(biāo)準(zhǔn)和規(guī)范,否則NS服務(wù)器上怎么設(shè)置TTL都是白搭,但目前來看還沒發(fā)現(xiàn)這么不講規(guī)矩的DNS服務(wù)器。