Nginx,LVS,HAProxy,負載均衡之選擇

2022-07-23 10:00:11 字數 2653 閱讀 8570

nginx的優點:

效能好,可以負載超過1萬的併發。

功能多,除了負載均衡,還能作web伺服器,而且可以通過geo模組來實現流量分配。

社群活躍,第三方補丁和模組很多

支援gzip

proxy

缺點:不支援session保持。

對後端reals

erver的健康檢查功能效果不好。而且只支援通過埠來檢測,不支援通過url來檢測。

nginx對big request header的支援不是很好,如果client_header_buffer_size設定的比較小,就會返回400bad request頁面。

haproxy的優點:

它的優點正好可以補充nginx的缺點。支援session保持,同時支援通過獲取指定的url來檢測後端伺服器的狀態。

支援tcp模式的負載均衡。比如可以給mysql的從伺服器集群和郵件伺服器做負載均衡。

缺點:不支援虛擬主機(這個很傻啊)

目前沒有nagios和cacti的效能監控模板

lvs的優點:

效能好,接近硬體裝置的網路吞吐和連線負載能力。

lvs的dr模式,支援通過廣域網進行負載均衡。這個其他任何負載均衡軟體目前都不具備。

缺點:比較重型。另外社群不如nginx活躍。

現在網路中常見的的負載均衡主要分為兩種:一種是通過硬體來進行進行,常見的硬體有比較昂貴的netscaler、f5、radware和array等商用的負載均衡器,也有類似於lvs、nginx、haproxy的基於linux的開源的負載均衡策略,

商用負載均衡裡面netscaler從效果上比f5的效率上更高。對於負載均衡器來說,不過商用負載均衡由於可以建立在四~七層協議之上,因此適用 面更廣所以有其不可替代性,他的優點就是有專業的維護團隊來對這些服務進行維護、缺點就是花銷太大,所以對於規模較小的網路服務來說暫時還沒有需要使用。

另一種負載均衡的方式是通過軟體:比較常見的有lvs、nginx、haproxy等,其中lvs是建立在四層協議上面的,而另外nginx和haproxy是建立在七層協議之上的,下面分別介紹關於

lvs:使用集群技術和linux作業系統實現乙個高效能、高可用的伺服器,它具有很好的可伸縮性(scalability)、可靠性(reliability)和可管理性(manageability)。

lvs的特點是:

1、抗負載能力強、是工作在網路4層之上僅作分發之用,沒有流量的產生;

2、配置性比較低,這是乙個缺點也是乙個優點,因為沒有可太多配置的東西,所以並不需要太多接觸,大大減少了人為出錯的機率;

3、工作穩定,自身有完整的雙機熱備方案;

4、無流量,保證了均衡器io的效能不會收到大流量的影響;

5、應用範圍比較廣,可以對所有應用做負載均衡;

6、lvs需要向idc多申請乙個ip來做visual ip,因此需要一定的網路知識,所以對操作人的要求比較高。

nginx的特點是:

1、工作在網路的7層之上,可以針對http應用做一些分流的策略,比如針對網域名稱、目錄結構;

2、nginx對網路的依賴比較小;

3、nginx安裝和配置比較簡單,測試起來比較方便;

4、也可以承擔高的負載壓力且穩定,一般能支撐超過1萬次的併發;

5、nginx可以通過埠檢測到伺服器內部的故障,比如根據伺服器處理網頁返回的狀態碼、超時等等,並且會把返回錯誤的請求重新提交到另乙個節點,不過其中缺點就是不支援url來檢測;

6、nginx對請求的非同步處理可以幫助節點伺服器減輕負載;

7、nginx能支援http和email,這樣就在適用範圍上面小很多;

8、不支援session的保持、對big request header的支援不是很好,另外預設的只有round-robin和ip-hash兩種負載均衡演算法。

haproxy的特點是:

1、haproxy是工作在網路7層之上。

2、能夠補充nginx的一些缺點比如session的保持,cookie的引導等工作

3、支援url檢測後端的伺服器出問題的檢測會有很好的幫助。

4、更多的負載均衡策略比如:動態加權輪循(dynamic round robin),加權源位址雜湊(weighted source hash),加權url雜湊和加權引數雜湊(weighted parameter hash)已經實現

5、單純從效率上來講haproxy更會比nginx有更出色的負載均衡速度。

6、haproxy可以對mysql進行負載均衡,對後端的db節點進行檢測和負載均衡。

第一階段:利用nginx或者haproxy進行單點的負載均衡,這一階段伺服器規模剛脫離開單伺服器、單資料庫的模式,需要一定的負載均衡,但是 仍然規模較小沒有專業的維護團隊來進行維護,也沒有需要進行大規模的**部署。這樣利用nginx或者haproxy就是第一選擇,此時這些東西上手快, 配置容易,在七層之上利用http協議就可以。這時是第一選擇

第二階段:隨著網路服務進一步擴大,這時單點的nginx已經不能滿足,這時使用lvs或者商用f5就是首要選擇,nginx此時就作為lvs或者 f5的節點來使用,具體lvs或者f5的是選擇是根據公司規模,人才以及資金能力來選擇的,這裡也不做詳談,但是一般來說這階段相關人才跟不上業務的提 公升,所以購買商業負載均衡已經成為了必經之路。

第三階段:這時網路服務已經成為主流產品,此時隨著公司知名度也進一步擴充套件,相關人才的能力以及數量也隨之提公升,這時無論從開發適合自身產品的定製,以及降低成本來講開源的lvs,已經成為首選,這時lvs會成為主流。

Nginx LVS HAproxy負載均衡對比

1 工作在網路7層,可以針對http應用做一些分流的策略,比如針對網域名稱,目錄結構 2 nginx對網路的依賴較小,理論上能ping通就能進行敷在功能 3 nginx安裝配置比較簡單,測試起來很方便 4 也可以承擔較高的負載壓力且穩定,nginx是為了解決c10k問題而誕生的 5 對後端伺服器的健...

nginx lvs haproxy負載優缺點比較

nginx的優點是 1 工作在網路的7層之上,可以針對http應用做一些分流的策略,比如針對網域名稱 目錄結構,它的正則規則比haproxy更為強大和靈活,這也是它目前廣泛流行的主要原因之一,nginx單憑這點可利用的場合就遠多於lvs了。2 nginx對網路穩定性的依賴非常小,理論上能ping通就...

負載均衡之lvs

集群 cluster 將一組計算機軟 硬體連線起來,高度緊密的協作完成計算工作,其中的單個計算機通常稱為節點。負載均衡集群 load balancing 通過負載均衡器,將負載盡可能平均分攤處理。lvs linux virtul server linux虛擬服務,分為三層結構 排程器 上面的虛擬ip...