Liunx 三大主流(LVS、Nginx、HAproxy)負載均衡對比
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)負載均衡對比