用DNSPod和Squid打造自己的CDN(二)
2024-09-01 13:44:54
供稿:網友
第 3 章 設置域名的DNS
重頭戲開始前,我們先來熱身。
智能DNS可以說是CDN的基礎。相信平時大家做網站都會有下面的情況:首頁上放兩個鏈接,電信用戶請訪問主力站點A,網通用戶請訪問鏡像站點B。然后做兩個域名,指向A,cnc.naizhao.com指向B。用戶看了半天覺得頭暈,隨便點一個進去,發現訪問速度真可以的,估計整個網頁打開,中國都已經步入共產主義社會了。
有了智能DNS后,上面的問題迎刃而解。用戶只需要輸入,系統就會自動判斷用戶是電信線路還是網通線路上網,然后自動返回電信或者網通的服務器IP。整個過程對于用戶來說是不可見的,用戶只會覺得刷的一下網頁就打開了,那叫一個爽。
廢話不多說,let's do it!
1.在DNSPod上面添加域名
打開,在右上角的導航菜單選擇注冊,根據提示輸入信息完成注冊。注冊成功后返回首頁登錄。
登錄后,看到有個添加新域名的框,輸入naizhao(別輸www。另外本文的例子就是naizhao.com),然后右邊選擇.com,完成后點擊增加。
添加后,系統會自動跳到新添加的域名管理頁面。可以看到里面什么東西都沒有。不急,我們慢慢來。
在頁面下方可以看到幾個輸入框和下拉列表,用于新增解析記錄。我們先試著添加一條電信的記錄看看。按照下面的格式輸入:
主機記錄:www
記錄類型:A
線路類型:電信
記錄值:1.1.1.1
優先級:(留空)
TTL:3600(默認)
完成后,點擊增加。
有幾個地方給大家說明一下:
主機記錄:也就是域名前面的東西,比如www,那么記錄生效后就是。如果要實現naizhao.com(前面沒有www),那么添加的時候留空就好,系統會自動給加上一個@,代表域名本身。
記錄類型:有A、CNAME、MX三種。最常用的就是A,記錄值是一個IP地址。另外是MX,也就是郵件記錄,做郵件服務器的時候用到,這里不深入討論了。
線路類型:比較重要。如果選擇了電信,那么代表這條記錄*只能*給電信用戶解析出來,網通用戶是解析不出這條記錄的。如果你一個域名只添加了一個電信的記錄,那么網通用戶將會無法訪問。同樣道理,網通的線路類型也一樣。另外有一點要說明:非網通、非教育網的用戶將會被解析到電信記錄去。也就是說,國外用戶、鐵通、聯通等用戶都會被解析到電信服務器。
還有一個通用,通用的意思是,不管你是電信還是網通還是其他用戶,都可以解析出這條記錄。在存在電信和網通兩條記錄的情況下,不建議添加通用記錄。
記錄值:根據記錄類型,分別輸入一個IP或者一個域名(不是URL轉發的域名)
優先級:用在MX記錄中,數字越小,優先級越高。作用是:從優先級最大的服務器開始,如果郵件服務器出問題,郵件無法寄達,將會轉發到優先級小一級的服務器上去。如果你沒有很多臺郵件服務器,這個就不用管了。
TTL:同樣是比較重要的東西。數字是按照秒來算,3600也就是一個小時。意思是,用戶請求一個域名的解析,在得到IP后,3600秒之內不會向DNS服務器重新請求解析,3600秒之內訪問此域名,都將直接從自己機器的緩存里面獲取IP。超出3600秒后,將會重新向DNS服務器請求獲取IP。
OK,我們繼續,添加一條網通的記錄,讓添加完成后的記錄像下面的樣子
到此,我們就添加成功了。等個半分鐘,我們來測試一下是否已經生效。
A.Windows用戶
我們使用nslookup命令,先在開始菜單-運行-cmd,回車打開命令行。
然后輸入nslookup ns1.dnspod.net,稍等一下,看看服務器返回的結果:
Name:
Address: 1.1.1.1
如果你是網通用戶,那么會得到下面的結果
Name:
Address: 2.2.2.2
只要你按照說明的步驟來說,基本不會有問題出現。如果無法正常返回結果,請稍等兩分鐘。如果等了兩分鐘還不行,那么就檢查下你添加的記錄是否正確了。
B.Linux/Unix/Mac用戶
直接使用系統自帶的dig命令。dig命令比nslookup更為強大。
輸入dig @ns1.dnspod.net ,會返回一大堆結果。我們只需要找到下面的文字就證明一切正常
;; ANSWER SECTION:
3600 INA1.1.1.1
網通用戶會看到
;; ANSWER SECTION:
3600 INA2.2.2.2
至此,DNSPod方面的工作已經完成,下一步就是把域名的DNS服務器改為DNSPod的。
2.把域名的DNS轉到DNSPod
域名遷移以前,我先提示一下風險:
根據域名的DNS協議規定,所有域名的NS記錄(也就是指向DNS服務器的記錄)的TTL時間必須為172800秒,也就是48小時。根據我們前面所學到有關TTL的知識,也就是說,一個域名如果被請求過一次以后,只要緩存不被清空,那么NS記錄就會存在48小時。48小時內,任何有關此域名的記錄的請求都發送到這個DNS服務器。換個角度來理解,如果A用戶訪問過你的網站,然后你在半個小時后修改你域名的DNS服務器,那么在剩余的47個半小時內,A用戶對你這個域名的所有請求都會發送到你*舊的*DNS服務器,而不是新的服務器。B用戶在你修改DNS成功后訪問你的網站,那么B用戶將會得到*新的*DNS服務器地址,所有請求都發往*新的*DNS服務器,而不是*舊的*。明白這點后,那么你就會知道,為什么修改域名的DNS后需要48個小時來生效。你也會明白,為什么記錄會一下變成新的,一下變成舊的:這是因為,你地方的DNS服務器一般是2-3臺,但他們每臺之間的記錄并不同步。
另外,一些很小氣的域名注冊商,在你修改DNS服務器后,會停止對你域名的解析。那么你將會冒著用戶無法訪問你站點的風險。對這樣的用戶,我一般建議在遷移域名的前一天,在你域名注冊商的DNS管理后臺,先把你所有域名記錄的TTL,從默認的3600改為36000(10個小時)以上,并且選擇在晚上10點以后修改DNS,因為DNS記錄會在用戶關機、關閉ADSL MODEM后失效(當然,很有可能還會從地方電信的DNS得到舊記錄)。設置10個小時以上是讓用戶在就算舊DNS服務器停止服務后,也能從本地的緩存里面得到記錄。
具體如何修改DNS,我就不具體說了,每個域名注冊商都不一樣。有幾點要注意的:
1.填寫DNS的時候,記得要把舊的全部去掉,不要以為新舊留著會穩定,這樣只會讓你的用戶得到錯誤的記錄。
2.盡量多填DNS服務器,這樣能讓你的域名更加穩定。目前DNSPod有6臺DNS服務器,一般的域名注冊商允許你填寫4個(新網),萬網在客戶面板里面只能填寫2個,但在域名管理面板(diy.hichina.com)可以把6個都填寫進去。
目前DNSPod的6臺DNS服務器分別為(注意了,是.net不是.com):
ns1.dnspod.net
ns2.dnspod.net
ns3.dnspod.net
ns4.dnspod.net
ns5.dnspod.net
ns6.dnspod.net
折騰了老半天,大家也夠累了。這個時候,ISO應該下載好了吧?辛苦一點,先把盤給刻好了。在下一章奶罩將會帶你進入神秘的Linux殿堂。