1. 程式人生 > >Nginx vs LVS 軟負載均衡技術選型總結

Nginx vs LVS 軟負載均衡技術選型總結

計算 依賴性 通過 基本 vlan 解決 假設 服務 利用

選型總結:

【運維角度】:LVS對網絡依賴性較高,卻沒有日誌輸出,不方便運維維護及排查問題。LVS屬於重量級應用,LVS多時候不能配置成功都是因為網絡問題而不是配置問題,出了問題要解決也相應的會麻煩得多。比如LVS第一次配置需要在應用服務器中配置路由規則,當配置文件或者網絡規則配置錯誤時,沒有任何日誌可以排查到錯誤原因,只能通過抓包方式一步一步排查。所以從雲計算自動化角度來說,選擇可維護性高,配置較簡單,處理問題較簡單的工具是適合的。Nginx有多種日誌輸出,可以更準確的定位問題和發現問題,搭建和測試更容易。

【性能角度】:公有雲網絡環境下,一個用戶可以使用多個VLAN,不同VLAN是垮網段的,所以一個用戶的應用,可能會出現在不同網段中。LVS模型共兩種,一種是NAT、一種是DR。DR性能優,基本無損耗。NAT性能不如nginx。但是DR只能在同一網段使用,不能垮網段,所以垮網段的情況必須使用LVS的NAT模型。而從性能角度LVS NAT不如Nginx。所以從性能角度,Nginx更優。

【帶寬角度】:當大型網站的假設成立時,應選擇LVS的DR模式,其性能更優穩定性更強,據千兆網卡瞬間速率可以達到70、80M,但一般只能維持在10M左右,所以我們的網卡配置無法抵擋住大型網站的網絡壓力,所以從帶寬流量硬件角度我們應承載的業務應定位為中小型網站。Nginx的業界定位是適合中小型網站。

【功能角度】:nginx因為工作在網絡7層協議,LVS工作在網絡4層協議,所以nginx支持更多的功能。

  1. 支持gzip proxy,可以解壓縮請求。可將網頁內容壓縮後傳輸至瀏覽器,降低網絡流量帶寬的消耗;
  2. 默認有健康檢查功能,該功能是必備項,性能表現良好。而LVS如果要做健康檢查,必須與keepalived結合,需要有一臺keepalived server,做通與業務網的網絡,每個應用和nginx實例端所在服務器都需要安裝keepalived client才能達到nginx自帶功能效果;
  3. 可以針對http應用本身來做分流策略,比如針對域名、目錄結構等,相比之下lvs並不具備這樣的功能,所以 nginx單憑這點可利用的場合就遠多於lvs了;
  4. nginx可作為網頁靜態服務器,當用戶量並發量高時,可以采用動態和靜態網頁分離的方式配置應用服務,降低對應用的網絡資源消耗;
  5. nginx也可作為中層代理使用,這一層面nginx基本上無對手。
  6. 社區資源角度:nginx社區活躍,第三方補丁和模塊很多,LVS相比之下遜色很多。

最終選型選擇了NGINX,其實LVS也是一個比較理想的軟負載服務器,在此沒有過多介紹它的優點,從我們得需求出發,選擇了NGINX。本質上同樣優秀。

Nginx vs LVS 軟負載均衡技術選型總結