LVS Nginx HAproxy的區別及優缺點

2021-10-07 05:36:10 字數 2860 閱讀 7847

lvs:是基於四層的** haproxy:是基於四層和七層的**,是專業的**伺服器

nginx:是web伺服器,快取伺服器,又是反向**伺服器,可以做七層的**

區別:lvs由於是基於四層的**所以只能做埠的**,而基於url的、基於目錄的這

種**lvs就做不了

工作選擇:

haproxy和nginx由於可以做七層的**,所以url和目錄的**都可以做,在很大併發

量的時候我們就要選擇lvs,像中小型公司的話併發量沒那麼大,選擇haproxy或者

nginx足已。

nginx的優點是:

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

構,它的正則規則比haproxy更為強大和靈活,這也是它目前廣泛流行的主要原因之一,

nginx單憑這點可利用的場合就遠多於lvs了。

2、nginx對網路穩定性的依賴非常小,理論上能ping通就就能進行負載功能,這個也是

它的優勢之一,相反lvs對網路穩定性依賴比較大;

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

4、可以承擔高負載壓力且穩定,在硬體不差的情況下一般能支撐幾萬次的併發量,負載

度比lvs相對小些。

5、nginx可以通過埠檢測到伺服器內部的故障,比如根據伺服器處理網頁返回的狀態

碼、超時等等,並且會把返回錯誤的請求重新提交到另乙個節點,不過其中缺點就是不支

持url來檢測。比如使用者正在上傳乙個檔案,而處理該上傳的節點剛好在上傳過程**現

故障,nginx會把上傳切到另一台伺服器重新處理,而lvs就直接斷掉了,如果是上傳一

個很大的檔案或者很重要的檔案的話,使用者可能會因此而不滿。

6、nginx不僅僅是一款優秀的負載均衡器/反向**軟體,它同時也是功能強大的web應

用伺服器,可作為靜態網頁和伺服器。還有nginx社群非常活躍,第三方模組也很多

7、nginx現在作為web反向加速快取越來越成熟了,速度比傳統的squid伺服器更快,可

考慮用其作為反向**加速器

nginx的缺點是:

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

點2、對後端伺服器的健康檢查,只支援通過埠來檢測,不支援通過url來檢測;不支援

session的直接保持,但能通過ip_hash來解決

lvs:使用linux核心集群實現乙個高效能、高可用的負載均衡伺服器,它具有很好的可

伸縮性(scalability)、可靠性(reliability)和可管理性(manageability)

lvs的優點是:

1、抗負載能力強、是工作在網路4層之上僅作分發之用,對記憶體和cpu資源消耗比較低

2、配置性比較低,這是乙個缺點也是乙個優點,因為沒有可太多配置的東西,所以並不

需要太多接觸,大大減少了人為出錯的機率

3、工作穩定,自身有完整的雙機熱備方案,如lvs+keepalived,不過我們在專案實施中

用得最多的還是lvs/dr+keepalived

4、沒有流量的產生,lvs只分發請求,而流量並不從它本身出去,這點保證了均衡器io

的效能不會收到大流量的影響。

5、應用範圍較廣,因為lvs工作在4層,所以它幾乎可對所有應用做負載均衡,包括

lvs的缺點是:

1、軟體本身不支援正規表示式處理,不能做動靜分離;而現在許多**在這方面都有較

強的需求,這個是nginx/haproxy+keepalived的優勢所在

2、如果是**應用比較龐大的話,lvs/dr+keepalived實施起來就比較複雜了,特別後

面有windows server的機器的話,如果實施及配置還有維護過程就比較複雜了,相對而

言,nginx/haproxy+keepalived就簡單多了。

haproxy的特點是:

1、haproxy也是支援虛擬主機的。

2、haproxy的優點能夠補充nginx的一些缺點,比如支援session的保持,cookie的引

導,同時支援通過獲取指定的url來檢測後端伺服器的狀態

3、haproxy跟lvs類似,本身就只是一款負載均衡軟體,單純從效率上來講haproxy會比

nginx有更出色的負載均衡速度,在併發處理上也是優於nginx的 4、haproxy支援tcp協議的負載均衡**,可以對mysql讀進行負載均衡,對後端的

mysql節點進行檢測和負載均衡,大家可以用lvs+keepalived對mysql主從做負載均衡

5、haproxy負載均衡策略非常多,haproxy的負載均衡演算法現在具體有如下8種:

①roundrobin,表示簡單的輪詢,這個不多說,這個是負載均衡基本都具備的; ②

static-rr,表示根據權重,建議關注; ③leastconn,表示最少連線者先處理,建議關

注; ④ source,表示根據請求源ip,這個跟nginx的ip_hash機制類似 我們用其作為解決

session問題的一種方法,建議關注; ⑤ri,表示根據請求的uri; ⑥rl_param,表示根

據請求的url引數』balance url_param』 requires an url parameter name; ⑦hdr(name),表示根據http請求頭來鎖定每一次http請求; ⑧rdp-cookie(name),

表示根據據cookie(name)來鎖定並雜湊每一次tcp請求。

OpenSessionInView的優缺點

概念 在hibernate中使用load方法時,並未把資料真正獲取時就關閉了session,當我們真正想獲取資料時會迫使load載入資料,而此時 session已關閉,所以就會出現異常。比較典型的是在mvc模式中,我們在m層呼叫持久層獲取資料時 持久層用的是load方法載入資料 當這一呼叫結束時,s...

async await,promise的優缺點

await後面接乙個會return new promise的函式並執行它 await只能放在async函式裡 function 搖色子 3000 async function test test 上面這段 async中使await 搖色子 先執行,等到三秒後執行完再把得到的結果賦值給左邊的n,也就是...

Cookie和Session的區別和優缺點

cookie的優缺點 優點 極高的擴充套件性和可用性 通過良好的程式設計,控制儲存在cookie中的session物件的大小。通過加密和安全傳輸技術 ssl 減少cookie被破解的可能性。只在cookie中存放不敏感資料,即使被盜也不會有重大損失。控制cookie的生命期,使之不會永遠有效。偷盜者...