1. 程式人生 > >Liunx 三大主流(LVS、Nginx、HAproxy)負載均衡對比

Liunx 三大主流(LVS、Nginx、HAproxy)負載均衡對比

三大負載 LVS HAproxy Nginx 均衡器

LVS:

1.抗負載能力強,性能高,能達到F5的60%,對內存和cpu資源消耗比較低

2.工作在網絡4層,通過VRRP協議(僅做代理使用),具體的流量是由liunx內核來處理,因此沒有流量的產生。

3.穩定,可靠性強,自身有完美的熱備方案(Keepalived+LVS)

4.不支持正則處理,不能做動靜分離

5.支持多種負載均衡算法:rr(輪詢),wrr(帶權輪詢)、lc(最小連接)、wlc(帶權最小連接)

6.配置相對復雜,對網絡依賴比較大,穩定性很高。

7.LVS工作模式有4種:

(1)nat地址轉換

(2)dr直接路由

(3)tun隧道

(4)full-nat


Nginx:

1.工作在網絡7層,可以針對http應用做一些分流的策略,比如針對域名,目錄結構

2.Nginx對網絡的依賴較小,理論上能ping通就能進行敷在功能

3.Nginx安裝配置比較簡單,測試起來很方便

4.也可以承擔較高的負載壓力且穩定,Nginx是為了解決c10k問題而誕生的

5.對後端服務器的健康檢查,只支持通過端口來檢測,不支持通過url來檢測

6.Nginx對請求的異步處理可以幫助節點服務器減輕負載壓力

7.Nginx僅能支持http、https和Email協議,這樣就在適用範圍較小

8.不支持Session的直接保持,但能通過ip_hash來解決,對Big request header的支持不是很好

9.Nginx還能做Web服務器即Cache功能。


HAproxy:

1.支持兩種代理模式:TCP(四層)和HTTP(七層),支持虛擬主機

2.能夠補充Nginx的一些缺點比如Session的保持,Cookie引導等工作

3.支持url檢測後端的服務器出問題的檢測會有很好的幫助。

4.更多負載均衡策略比如:動態加權輪循,加權源地址哈希,加權URL哈希加權等參數哈希已經實現。

5.單純從效率上來講HAproxy更會比Nginx有更出色的負載均衡

6.HAproxy可以對MYsql進行負載均衡,對後端的DB節點進行檢測和負載均衡

7.支持負載均衡算法:輪循、帶權輪循、源地址保持、請求URL、根據Cookie

8.不能做Web服務器即Cache。


三大主流軟件負載均衡器適用的生產場景:

1.網站建設初期,可以選用Nginx、HAproxy作為反向代理負載均衡(流量不大時可以選擇不用負載均衡)因為其配置簡單,性能也能滿足一般業務場景。如果考慮到負載均衡器是有單點失敗問題,可以采用Nginx+Keepalived避免負載均衡器自身單點問題。

2.網站並發達到一定程度後,為了提高穩定性和轉發效率,可以使用LVS,畢竟LVS比Nginx/HAproxy要更穩定,轉發效率也高。

Liunx 三大主流(LVS、Nginx、HAproxy)負載均衡對比