詳解負載均衡實現一個域名對應多個IP地址
使用負載均衡實現,傳統和常規做法,其他方式需要特殊處理。(dns輪詢,或者自己做解析)
1、一個域名設定多個dns服務或者服務器進行解析,同一個域名的每個解析都指向不同的ip地址,這樣應答快的dns優先進行解析,這樣就能保證最快定向到指定的網站空間去。如果空間也存在不同地點的相同內容鏡像,那么這種方式最適合,例如sohu全國都有服務器,就是這么干的,除非你指定要訪問某個地方的服務器,否則默認轉向最快的空間,因為內容是鏡像自動同步的,內容上不存在差別,用戶是不知道的。一般域名管理機構只允許設定2到3個域名解析服務,所以再多就不支持了。
2、自己公司建立服務器,給自己進行dns解析服務,這樣容易實現以上功能的操做。且數量不受限制,例如給客戶提供移動、聯通、網通、電信、東方寬帶、長城寬帶等等多個dns,那么使用對應寬帶的用戶都能自動定向到適合自己的網站去,企業可以分別在不同運營商那里建立網站,保證不同帶寬的用戶都能高速訪問,很多游戲運營商都是這么干的。
DNS負載均衡技術是在DNS服務器中為同一個主機名配置多個IP地址,在應答DNS查詢時,DNS服務器對每個查詢將以DNS文件中主機記錄的IP地址按順序返回不同的解析結果,將客戶端的訪問引導到不同的機器上去,使得不同的客戶端訪問不同的服務器,從而達到負載均衡的目的。
DNS負載均衡的優點是經濟簡單易行,并且服務器可以位于internet上任意的位置。但它也存在不少缺點:
為了使本DNS服務器和其他DNS服務器及時交互,保證DNS數據及時更新,使地址能隨機分配,一般都要將DNS的刷新時間設置的較小,但太小將會使DNS流量大增造成額外的網絡問題。
一旦某個服務器出現故障,即使及時修改了DNS設置,還是要等待足夠的時間(刷新時間)才能發揮作用,在此期間,保存了故障服務器地址的客戶計算機將不能正常訪問服務器。
DNS負載均衡采用的是簡單的輪循負載算法,不能區分服務器的差異,不能反映服務器的當前運行狀態,不能做到為性能較好的服務器多分配請求,甚至會出現客戶請求集中在某一臺服務器上的情況。
要給每臺服務器分配一個internet上的IP地址,這勢必會占用過多的IP地址。
判斷一個站點是否采用了DNS負載均衡的最簡單方式就是連續的ping這個域名,如果多次解析返回的IP地址不相同的話,那么這個站點就很可能采用的就是較為普遍的DNS負載均衡。但也不一定,因為如果采用的是DNS響應均衡,多次解析返回的IP地址也可能會不相同。不妨試試Ping一下www.yesky.com,www.sohu.com,www.yahoo.com。
現假設有三臺服務器來應對www.test.com的請求。
在NT下的實現也很簡單,下面詳細介紹在win2000 server下實現DNS負載均衡的過程,NT4.0類似:
打開“管理工具”下的“DNS”,進入DNS服務配置控制臺。
打開相應DNS 服務器的“屬性”,在“高級”選項卡的“服務器選項”中,選中“啟用循環”復選框。此步相當于在注冊表記錄HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\DNS\Parameters中添加一個雙字節制值(dword值)RoundRobin,值為1。
打開正向搜索區域的相應區域(如test.com),新建主機添加主機 (A) 資源記錄,記錄如下:
www IN A 192.1.1.1
www IN A 192.1.1.2
www IN A 192.1.1.3
在這里可以看到的區別是在NT下一個主機名對應多個IP地址記錄,但在unix下,是先添加多個不同的主機名分別對應個自的IP地址,然后再把這些主機賦同一個別名(CNAME)來實現的。
在此需要注意的是,NT下本地子網優先級會取代多宿主名稱的循環復用,所以在測試時,如果做測試用的客戶機IP地址與主機資源記錄的IP在同一有類掩碼范圍內,就需要清除在“高級”選項卡“服務器選項”中的“啟用netmask排序”。
感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!
原文鏈接:http://www.cnblogs.com/cuihongyu3503319/archive/2012/07/09/2583129.html