使用DNSPod來處理網站的均衡負載
摘要:DNSPod 是一款免費智能DNS產品。DNSPod 可以為同時有電信、網通、教育網服務器的網站提供智能的解析,讓電信用戶訪問電信的服務器,網通的用戶訪問網通的服務器,達到互聯互通的效果。
首先介紹下DNSPod。DNSPod 是一款免費智能DNS產品。DNSPod 可以為同時有電信、網通、教育網服務器的網站提供智能的解析,讓電信用戶訪問電信的服務器,網通的用戶訪問網通的服務器,達到互聯互通的效果。能夠讓使用雙線路或擁有多鏡像的網站站長輕松實現智能DNS解析,讓用戶僅用單域名即可訪問到最快速的鏡像。
如上圖,我們可以給不同的線路(電信、網通、教育網)設置不同的IP(服務器),除此之外,DNSPod還支持,DNS輪詢功能,可幫助網站進行均衡負載。如下圖:
接下來需要介紹下什么是DNS輪詢。大多域名注冊商都支持多條A記錄的解析,其實這就是DNS輪詢,DNS服務器將解析請求按照A記錄的順序,逐一分配到不同的IP上,這樣就完成了簡單的負載均衡。
優點
- 基本上無成本,因為往往域名注冊商的這種解析都是免費的;
- 部署方便,除了網絡拓撲的簡單擴增,新增的Web服務器只要增加一個公網IP即可。
缺點
- 健康檢查,如果某臺服務器宕機,DNS服務器是無法知曉的,仍舊會將訪問分配到此服務器。修改DNS記錄全部生效起碼要3-4小時,甚至更久;
- 分配不均,如果幾臺Web服務器之間的配置不同,能夠承受的壓力也就不同,但是DNS解析分配的訪問卻是均勻分配的。其實DNS也是有分配算法的,可以根據當前連接較少的分配、可以設置Rate權重分配等等,只是目前絕大多數的DNS服務器都不支持;
- 會話保持,如果是需要身份驗證的網站,在不修改軟件構架的情況下,這點是比較致命的,因為DNS解析無法將驗證用戶的訪問持久分配到同一服務器。雖然有一定的本地DNS緩存,但是很難保證在用戶訪問期間,本地DNS不過期,而重新查詢服務器并指向新的服務器,那么原服務器保存的用戶信息是無法被帶到新服務器的,而且可能要求被重新認證身份,來回切換時間長了各臺服務器都保存有用戶不同的信息,對服務器資源也是一種浪費。
DNS輪詢原理:比如你添加了三條記錄,分別是1,2,3
- 第一個用戶請求,記錄返回1,2,3
- 第二個用戶請求,記錄返回2,3,1
- 第三個用戶請求,記錄返回3,1,2
- 第四個用戶請求,記錄返回1,2,3
所有的記錄都是均勻的返回給每一個請求的用戶,但有時候用戶可能一打開你的網站就馬上退出(比如關掉了瀏覽器),有些用戶可能會一直瀏覽你的網站。因為DNS無法得知還有哪個用戶還在訪問你哪一臺服務器,所以就會造成有些服務器訪問的用戶多,有些服務器訪問的用戶少(因為這臺服務器訪問時間短的用戶比較多)。最后就會出現訪問用戶不平均的情況。
DNSPod官方網址:https://www.dnspod.com/
全站熱搜