lvs nginx haproxy 對比
都可以做負載均衡;工作方式和應用場景各有特點;
一、lvs Linux 虛擬 服務;
1、可以應用支持協議: ftp http dns telnet smtp smtp 、
2、lvs 負載 算法:
輪叫調度、加權輪叫、最少鏈接、加權最小鏈接、基於局部的最少鏈接,
3、配置實現方式: NAT 實現 優點:可以減少共有地址,支持任何操作系統的TCP/IP 協議; 缺點:服務器伸縮限制, IP 隧道實現虛擬虛擬服務器 有IP 隧道開銷; DR 直接路由實現虛擬服務器 (數據響應可以獨立返回給客戶端)
特點:
1、LVS 只在網絡層,做請求分發,沒有流量,所以可以進行分配線路分流;
2、本身資源消耗低,IO性能不會收到大的流量;
3、配置較少,直接ipvsadm 添加機器;
4、不能判斷節點故障;后端服務出現故障,請求到了就會直接返回錯誤。
二、Nginx 負載算法:
1、輪詢
2、加權輪詢 3、ip_hash 4、url_hash 5、還有個 fair (根據文件請求加載時間進行負載,需要 pstream_fair 模塊)
nginx 做負載均衡在應用層;
1、主要在應用層 http 和 mail 的負載均衡;
2、但是 nginx 可以和 http 上對服務分流;靜態分離,針對域名,或者目錄結構;
3、支持Rewrite 重寫規則;節省帶寬 支持GZIP壓縮;
4、通過端口進行后端健康檢查,后端服務宕機不影響前端訪問;
5、nginx 也可以做緩存;
三、HAproxy 多用於 mysql 集群,作mysql 讀取負載;
1、支持兩種代理模式:TCP(四層)和HTTP(七層),支持虛擬主機; 2、能夠補充 Nginx 的一些缺點比如Session的保持,Cookie 的引導等工作 ;不過 nginx ip_hash 可以實現 會話保持, 3、支持url檢測后端的服務器出問題的檢測會有很好的幫助。 4、更多的負載均衡策略比如:動態加權輪循(Dynamic Round Robin),加權源地址哈希(Weighted Source Hash),加權URL哈希和加權參數哈希(Weighted Parameter Hash)已經實現 5、單純從效率上來講HAProxy更會比Nginx有更出色的負載均衡速度。 6、HAProxy 可以對 Mysql進行負載均衡,對后端的DB節點進行檢測和負載均衡。 7、支持負載均衡算法:Round-robin(輪循)、Weight-round-robin(帶權輪循)、source(原地址保持)、RI(請求URL)、rdp-cookie(根據cookie) 8、不能做Web服務器即Cache。
四、其他負載均衡 有 heartbeat F5
五、F5
流量負載;
可以做4~7層的負載均衡;檢查宕機,從而不會將用戶的訪問請求傳送到故障機器上。
可以做 動態 Session 的會話保持;