原理:根據用戶的http請求計算出一個真實的web服務器地址,並將該web服務器地址寫入http重定向響應中返回給瀏覽器,由瀏覽器從新進行訪問。web
如圖:算法
優勢:比較簡單瀏覽器
缺點:瀏覽器須要零次請求服務器才能完成一次訪問,性能較差。緩存
http重定向服務器自身的處理能力可能成爲瓶頸。服務器
使用http302響應重定向,有可能使搜索引擎判斷爲SEO做弊,下降搜索排名。網絡
原理:在DNS服務器上配置多個域名對應IP的記錄。例如一個域名www.baidu.com對應一組web服務器IP地址,域名解析時通過DNS服務器的算法將一個域名請求分配到合適的真實服務器上。架構
如圖:負載均衡
優勢:將負載均衡的工做交給了DNS,省卻了網站管理維護負載均衡服務器的麻煩,同事許多DNS還支持基於地理位置的域名解析,將域名解析成距離用戶地理最近的一個服務器地址,加快訪問速度嗎,改善性能。性能
缺點:目前的DNS解析是多級解析,每一級DNS均可能化緩存記錄A,當摸一服務器下線後,該服務器對應的DNS記錄A可能仍然存在,致使分配到該服務器的用戶訪問失敗。學習
DNS負載均衡的控制權在域名服務商手裏,網站可能沒法作出過多的改善和管理。
不可以按服務器的處理能力來分配負載。DNS負載均衡採用的是簡單的輪詢算法,不能區分服務器之間的差別,不能反映服務器當前運行狀態,因此其的負載均衡效果並非太好。
可能會形成額外的網絡問題。爲了使本DNS服務器和其餘DNS服務器及時交互,保證DNS數據及時更新,使地址能隨機分配,通常都要將DNS的刷新時間設置的較小,但過小將會使DNS流量大增形成額外的網絡問題。
原理:反向代理處於web服務器這邊,反向代理服務器提供負載均衡的功能,同時管理一組web服務器,它根據負載均衡算法將請求的瀏覽器訪問轉發到不一樣的web服務器處理,處理結果通過反向服務器返回給瀏覽器。
如圖:
例如:瀏覽器訪問請求的地址是反向代理服務器的地址114.100.80.10,反向代理服務器收到請求,通過負載均衡算法後獲得一個真實物理地址10.0.03,並將請求結果發給真實無服務,真實服務器處理完後經過反向代理服務器返回給請求用戶。
優勢:部署簡單,處於http協議層面。
缺點:使用了反向代理服務器後,web 服務器地址不能直接暴露在外,所以web服務器不須要使用外部IP地址,而反向代理服務做爲溝通橋樑就須要配置雙網卡、外部內部兩套IP地址。
原理:在網絡層經過修改目標地址進行負載均衡。
如圖:
用戶訪問請求到達負載均衡服務器,負載均衡服務器在操做系統內核進程獲取網絡數據包,根據算法獲得一臺真實服務器地址,而後將用戶請求的目標地址修改爲該真實服務器地址,數據處理完後返回給負載均衡服務器,負載均衡服務器收到響應後將自身的地址修改爲原用戶訪問地址後再講數據返回回去。相似於反向服務器負載均衡。
優勢:在響應請求時速度較反向服務器負載均衡要快。
缺點:當請求數據較大(大型視頻或文件)時,速度較慢。
原理:在數據鏈路層修改Mac地址進行負載均衡。
如圖:
負載均衡服務器的IP和它所管理的web 服務羣的虛擬IP一致;
負載均衡數據分發過程當中不修改訪問地址的IP地址,而是修改Mac地址;
經過這兩點達到不修改數據包的原地址和目標地址就能夠進行正常的訪問。
優勢:不須要負載均衡服務器進行地址的轉換。
數據響應時不須要通過負載均衡服務器。
缺點:負載均衡服務器的網卡帶寬要求較高。
目前連路程負載均衡是特別常見的一種手段,典型的產品有LVS(Linux Virtual Server)。