Linux中LVS負載和Nginx負載區別是什麼?優劣勢彙總!

老男孩IT教育機構發表於2022-08-16

 負載均衡其意思就是分攤到多個操作單元上進行執行,例如Web伺服器、FTP伺服器、企業關鍵應用伺服器和其它關鍵任務伺服器等,從而共同完成工作任務。提到Linux負載均衡,大家肯定都知道LVS負載和Nginx負載,那麼LVS負載和Nginx負載有啥區別?我們來看看吧。

  LVS是Liunx虛擬伺服器的簡稱,利用LVS提供的負載均衡技術和linux作業系統可實現高效能、高可用的伺服器叢集,一般LVS都是位於整個叢集系統的最前端,由一臺或者多臺負載排程器組成,分發給應用伺服器。它是工作在4層,LVS是基於IP負載均衡技術的IPVS模組來實現的,IPVS實現負載均衡機制有三種,分別是NAT、TUN和DR,詳述如下:

  VS/NAT:

  也就是網路地址翻譯技術實現虛擬伺服器,當使用者請求到達排程器時,排程器將請求報文的目標地址改寫成選定的Real Server地址,同時報文的目標埠也改成選定的Real Server的相應埠,最後將報文請求傳送到選定的Real Server。在伺服器端得到資料後,Real Server返回資料給使用者時,需要再次經過負載排程器將報文的源地址和源埠改成虛擬IP地址和相應埠,然後把資料傳送給使用者,完成整個負載排程過程。

  可以看出,在NAT方式下,使用者請求和響應報文都必須經過Director Server地址重寫,當使用者請求越來越多時,排程器的處理能力將稱為瓶頸。

  VS/TUN:

  也就是IP隧道技術實現虛擬伺服器。它的連線排程和管理與VS/NAT方式一樣,只是它的報文轉發方法不同,VS/TUN方式中,排程器採用IP隧道技術將使用者請求轉發到某個Real Server,而這個Real Server將直接響應使用者的請求,不再經過前端排程器,此外,對Real Server的地域位置沒有要求,可以和Director Server位於同一個網段,也可以是獨立的一個網路。因此,在TUN方式中,排程器將只處理使用者的報文請求,叢集系統的吞吐量大大提高。

  VS/DR:

  也就是用直接路由技術實現虛擬伺服器。它的連線排程和管理與VS/NAT和VS/TUN中的一樣,但它的報文轉發方法又有不同,VS/DR透過改寫請求報文的MAC地址,將請求傳送到Real Server,而Real Server將響應直接返回給客戶,免去了VS/TUN中的IP隧道開銷。這種方式是三種負載排程機制中效能最高最好的,但是必須要求Director Server與Real Server都有一塊網路卡連在同一物理網段上。

  回答負載排程演算法,IPVS實現在八種負載排程演算法,我們常用的有四種排程演算法(輪叫排程、加權輪叫排程、最少連結排程、加權最少連結排程)。接下來簡單說下與nginx的區別:

  LVS的優點:

  抗負載能力強、工作在第4層僅作分發之用,沒有流量的產生,這個特點也決定了它在負載均衡軟體裡的效能最強的;無流量,同時保證了均衡器IO的效能不會受到大流量的影響;

  工作穩定,自身有完整的雙機熱備方案,如LVS+Keepalived和LVS+Heartbeat;

  應用範圍比較廣,可以對所有應用做負載均衡;

  配置性比較低,這是一個缺點也是一個優點,因為沒有可太多配置的東西,所以並不需要太多接觸,大大減少了人為出錯的機率。

  Nginx的優點:

  工作在OSI第7層,可以針對http應用做一些分流的策略。比如針對域名、目錄結構。它的正則比HAProxy更為強大和靈活;

  Nginx對網路的依賴非常小,理論上能ping通就能進行負載功能,這個也是它的優勢所在;

  Nginx安裝和配置比較簡單,測試起來比較方便;

  可以承擔高的負載壓力且穩定,一般能支撐超過幾萬次的併發量;

  Nginx可以透過埠檢測到伺服器內部的故障,比如根據伺服器處理網頁返回的狀態碼、超時等等,並且會把返回錯誤的請求重新提交到另一個節點;

  Nginx不僅僅是一款優秀的負載均衡器/反向代理軟體,它同時也是功能強大的Web應用伺服器。LNMP現在也是非常流行的web環境,大有和LAMP環境分庭抗禮之勢,Nginx在處理靜態頁面、特別是抗高併發方面相對apache有優勢;

  Nginx現在作為Web反向加速快取越來越成熟了,速度比傳統的Squid伺服器更快,有需求的朋友可以考慮用其作為反向代理加速器;


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69952527/viewspace-2910643/,如需轉載,請註明出處,否則將追究法律責任。

相關文章