F5/LVS/Nginx/HAProxy硬軟件級網絡負載均衡介紹

在CSDN上看見這篇博文感受整理的很好,就把他轉過來了。這個是博主文章傳送門:傳送門nginx

1 硬件級的負載均衡web

    常見的商用硬件負載均衡器:NetScaler、F五、Radware、Array算法

    優勢:後端

    1)專業團隊維護,可以直接經過智能交換機實現,處理能力更強,並且與系統無關,負載性能強緩存

    2)更適用於一大堆設備、大訪問量、簡單應用安全

    缺點:服務器

    1)價格貴,花銷大cookie

    2)不能及時有效掌握服務器及應用狀態,硬件負載均衡,通常都無論實際系統與應用的狀態,而只是從網絡層來判斷,因此有時候系統處理能力已經不行了,但網絡可能還將來得及反應網絡

2 軟件級負載均衡session

    優勢:性價比高,基於系統與應用的負載均衡,可以更好地根據系統與應用的情況來分配負載,適用於規模較小的網絡服務

    缺點:負載能力受服務器自己性能的影響,性能越好,負載能力越大

3 LVS(Linux Virtual Server)

    由章文嵩博士研究的項目,使用集羣技術和Linux操做系統實現一個高性能、高可用的服務器,它具備很好的

     #可伸縮性(Scalability)

     #可靠性(Reliability)

     #可管理性(Manageability)

    IP負載均衡技術:

    1)VS/NAT:Virtual Server via Network Address Translation, 經過網絡地址轉換(Network Address Translation)將一組服務器構成一個高性能的、高可用的虛擬服務器

    2)   VS/TUN:Virtual Server via IP Tunneling, 經過IP隧道實現虛擬服務器的方法

    3)   VS/DR:Virtual Server via Direct Routing,  經過直接路由實現虛擬服務器的方法

    LVS特色:

    1)抗負載能力強、是工做在網絡4層之上僅做分發之用,沒有流量的產生,這個特色也決定了它在負載均衡軟件裏的性能最強的;
    2)配置性比較低,這是一個缺點也是一個優勢,由於沒有可太多配置的東西,因此並不須要太多接觸,大大減小了人爲出錯的概率;
    3)工做穩定,自身有完整的雙機熱備方案,如LVS+Keepalived和LVS+Heartbeat,不過咱們在項目實施中用得最多的仍是LVS/DR+Keepalived;
    4)無流量,保證了均衡器IO的性能不會收到大流量的影響;
    5)應用範圍比較廣,能夠對全部應用作負載均衡;
    6)軟件自己不支持正則處理,不能作動靜分離,這個就比較遺憾了;其實如今許多網站在這方面都有較強的需求,這個是Nginx/HAProxy+Keepalived的優點所在

    7)若是是網站應用比較龐大的話,實施LVS/DR+Keepalived起來就比較複雜了,特別後面有Windows Server應用的機器的話,若是實施及配置還有維護過程就比較複雜了,相對而言,Nginx/HAProxy+Keepalived就簡單多了。

4 Nginx

    Nginx(發音同 engine x)是一款輕量級的Web 服務器/反向代理服務器及電子郵件(IMAP/POP3)代理服務器,並在一個BSD-like 協議下發行。由俄羅斯的程序設計師Igor Sysoev所開發,供俄國大型的入口網站及搜索引擎Rambler(俄文:Рамблер)使用。其特色是佔有內存少,併發能力強,事實上nginx的併發能力確實在同類型的網頁服務器中表現較好

    特色:

    1)工做在網絡的7層之上,能夠針對http應用作一些分流的策略,好比針對域名、目錄結構,它的正則規則比HAProxy更爲強大和靈活,這也是許多朋友喜歡它的緣由之一;
    2)Nginx對網絡的依賴很是小,理論上能ping通就就能進行負載功能,這個也是它的優點所在;
    3)Nginx安裝和配置比較簡單,測試起來比較方便;
    4)也能夠承擔高的負載壓力且穩定,通常能支撐超過幾萬次的併發量;
    5)Nginx能夠經過端口檢測到服務器內部的故障,好比根據服務器處理網頁返回的狀態碼、超時等等,而且會把返回錯誤的請求從新提交到另外一個節點,不過其中缺點就是不支持url來檢測;
    6)Nginx僅能支持http和Email,這樣就在適用範圍上面小不少,這個它的弱勢;
    7)Nginx不只僅是一款優秀的負載均衡器/反向代理軟件,它同時也是功能強大的Web應用服務器。LNMP如今也是很是流行的web架構,大有和之前最流行的LAMP架構分庭抗爭之勢,在高流量的環境中也有很好的效果。
    8)Nginx如今做爲Web反向加速緩存愈來愈成熟了,不少朋友都已在生產環境下投入生產了,並且反映效果不錯,速度比傳統的Squid服務器更快,有興趣的朋友能夠考慮用其做爲反向代理加速器。

5 HAProxy

    HAProxy提供高可用性、負載均衡以及基於TCP和HTTP應用的代理,支持虛擬主機,它是免費、快速而且可靠的一種解決方案。HAProxy特別適用於那些負載特大的web站點, 這些站點一般又須要會話保持或七層處理。HAProxy運行在當前的硬件上,徹底能夠支持數以萬計的併發鏈接。而且它的運行模式使得它能夠很簡單安全的整合進您當前的架構中,同時能夠保護你的web服務器不被暴露到網絡上。

    

    特色:

    1)HAProxy是支持虛擬主機的
    2)可以補充Nginx的一些缺點好比Session的保持,Cookie的引導等工做
    3)支持url檢測後端的服務器出問題的檢測會有很好的幫助。
    4)它跟LVS同樣,自己僅僅就只是一款負載均衡軟件;單純從效率上來說HAProxy更會比Nginx有更出色的負載均衡速度,在併發處理上也是優於Nginx的。
    5)HAProxy能夠對MySQL讀進行負載均衡,對後端的MySQL節點進行檢測和負載均衡,不過在後端的MySQL slaves數量超過10臺時性能不如LVS,因此我向你們推薦   LVS+Keepalived。    6)HAProxy的算法如今也愈來愈多了,具體有以下8種:        ①roundrobin,表示簡單的輪詢,這個很少說,這個是負載均衡基本都具有的;        ②static-rr,表示根據權重,建議關注;        ③leastconn,表示最少鏈接者先處理,建議關注;        ④source,表示根據請求源IP,這個跟Nginx的IP_hash機制相似,咱們用其做爲解決session問題的一種方法,建議關注;        ⑤ri,表示根據請求的URI;        ⑥rl_param,表示根據請求的URl參數'balance url_param' requires an URL parameter name;        ⑦hdr(name),表示根據HTTP請求頭來鎖定每一次HTTP請求;        ⑧rdp-cookie(name),表示根據據cookie(name)來鎖定並哈希每一次TCP請求。

相關文章
相關標籤/搜索