1. 程式人生 > >lvs,nginx,haproxy負載均衡軟體優缺點及應用場景

lvs,nginx,haproxy負載均衡軟體優缺點及應用場景

Nginx/LVS/HAProxy的基於Linux的開源免費的負載均衡軟體。

LVS:使用叢集技術和Linux作業系統實現一個高效能、高可用的伺服器,它具有很好的可伸縮性、可靠性和可管理性,是一款強大實用的開源軟體。

LVS的優點:

1:抗負載能力強、是工作在網路4層之上僅作分發之用,沒有流量的產生,這個特點也決定了它在負載均衡軟體裡的效能最強的,也保證了均衡器I/O的效能不會受到大流量的影響。;

2:因為LVS工作在4層,所以它幾乎可以對所有應用做負載均衡,包括http、資料庫、線上聊天室等等

3.:無流量,LVS只分發請求,而流量並不從它本身出去,這點保證了均衡器IO的效能不會受到大流量的影響;

4:工作穩定,因為其本身抗負載能力很強,自身有完整的雙機熱備方案,目前用的比較多的是lvs+keepalived,比較大型的用的多的是lvs+heartbeat。

缺點:

1、軟體本身不支援正則表示式處理,不能做動靜分離;而現在許多網站在這方面都有較強的需求,這個是Nginx/HAProxy+Keepalived的優勢所在。

2、如果是網站應用比較龐大的話,LVS/DR+Keepalived實施起來就比較複雜了,特別後面有Windows Server的機器的話,如果實施及配置還有維護過程就比較複雜了,相對而言,Nginx/HAProxy+Keepalived就簡單多了。

nginx的優點:

1,Nginx的高併發,同時能承載上萬個併發連線;

2,nginx有充足的第三方功能模組的支援,主要通過upstream模組進行負載均衡;

3,nginx對網路的依賴較小,理論上只要Ping

得通,網頁訪問正常,nginx就能連得通;

4,工作在網路的7層之上,可以針對http應用做一些分流的策略,它的正則規則比haproxy更為強大和靈活,這也是它目前廣泛流行的主要原因之一,nginx單憑這點可利用的場合就遠多於lvs了;

5,Nginx也可作為靜態網頁和圖片伺服器,這方面的效能也無對手。

nginx的缺點:

1:將Nginx當做反向代理時,負載均衡功能不是很好,對後端伺服器的健康檢查功能較弱;

2:nginx僅能支援http、https和email協議,這樣就在適用範圍上面小些,這個是它的缺點;

3:nginx只支援通過埠來檢測,不支援通過url來檢測。

haproxy的優點:
1:HAProxy的優點能夠補充Nginx的一些缺點,比如支援Session的保持,Cookie的引導;同時支援通過獲取指定的url來檢測後端伺服器的狀態;

2:haproxy也是專門的負載均衡軟體,Haproxy可以負載http,還可以負載均衡mysql;

3:HAProxy是支援虛擬主機的。

綜上所述:

可以選擇不同的軟體類的負載均衡軟體,當然也是可以選擇硬體類的負載均衡器。

像對於大型的,需要進行高併發的網站或者對網路不太嚴格的時候,可以使用nginx;

對於大型的Web伺服器的時候可以使用haproxy;

對效能有嚴格要求的時候可以使用lvs,就單純從負載均衡的角度來說,lvs也許會成為主流,更適合現在大型的網際網路公司。