1負載均衡產品介紹
基於硬件的負載均衡設備例如F5,Big-IP,
基於軟件的負載均衡產品HAproxy,LVS,nginx
在這些軟件產品中,又分為基於操作系統的軟負載實現和基於第三方應用的軟負載實現。
LVS就是基於Linux操作系統實現的一種軟負載均衡,而HAproxy是基於第三方實現的軟負載均衡。
2 HAproxy簡介
HAProxy是一個開源的,高性能的,基於TCP和HTTP(第七層)應用的負載均衡軟件。
可靠性和穩定性好,可以與硬件級的F5媲美
可以同時維護4-5萬的並發連接。
支持多於8種負載均衡算法,也支持session保持。
支持虛擬主機的功能
1.3后支持拒絕連接,全透明代理等功能
擁有一個強大的服務器狀態監控頁面可以實時了解系統運行狀態。
支持ACL
3四層和七層負載均衡的區別
四層負載均衡器
所謂四層就是IOS模型中的第四層,四層負載均衡器也叫四層交換機,主要是通過分析IP層及TCP/UDP層
的力量實現基於IP和端口號的負載均衡,常見的有LVS,F5
主要實現過程以TCP為例
負載均衡器在接收到第一個來自客戶端的SYN請求時,會通過設定的負載均衡算法選擇一台最佳的后端服務器
同時將保溫中的目標IP地址修改為后端服務器IP,然后直接轉發給后端服務器這樣一個負載均衡就完成了。
在這個過程中,一個TCP連接時客戶端與服務器直接建立連接的,而負載均衡器只不過相當於路由器的轉發動作。
負載均衡器
client---------TCP連接----------轉發連接-----服務
修改報文頭目標地址修改源地址(根據需求)
七層負載均衡器
七層負載均衡器也叫七層交換機,位於ISO模型的最高層應用層,此負載均衡支持多種協議,例如HTTP,FTP,SMTP等。
七層負載均衡可以根據報文內容,在配合負載均衡算法來選擇后端服務器,因此也可叫內容交換器
對於web來說,七層負載均衡不但可以根據IP+端口號來負載分流,還可以根據網站的URL,訪問域名,瀏覽器,語言等來
決定負載均衡策略。
主要實現過程以TCP為例
由於負載均衡器要獲取報文的內容,因此只能先代替后端服務器和客戶端建立連接,接着才能收到客戶端發來的報文內容,然后根據
報文中特定字段加上負載均衡器中設置的負載均衡器算法來決定最終選擇的內部服務器,在整個過程中,七層負載均衡器類似與一個代理服務器。
七層負載均衡器
client ----獨立TCP連接----代理----------獨立TCP連接------server
對比以上可以看出七層模式下,負載均衡器和客戶端以及后端服務器都會分別建立一次TCP連接,而四層負載均衡模式下,僅僅建立一次TCP連接.
所以,七層對負載均衡設備要求更高,七層處理能力必然低於四層模式。
4 LVS NGINX HAproxy的比較
