在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請求。