Nginx 和 LVS 的各種優缺點

LVS 的負載能力強,因為其工作方式邏輯非常簡單,僅進行請求分發,而且工作在網絡的第 4 層,沒有流量,所以其效率不需要有過多的憂慮。

LVS 基本能支持所有應用,因為工作在第 4 層,所以 LVS 可以對幾乎所有應用進行負載均衡,包括 Web、數據庫等。

註意:LVS 並不能完全判別節點故障,比如在 WLC 規則下,如果集群裏有一個節點沒有配置 VIP,將會導致整個集群不能使用。還有一些其他問題,目前尚需進一步測試。

Nginx 工作在網路第 7 層,所以可以對 HTTP 應用實施分流策略,比如域名、結構等。相比之下,LVS 並不具備這樣的功能,所以 Nginx 可使用的場合遠多於 LVS。並且 Nginx 對網絡的依賴比較小,理論上只要 Ping 得通,網頁訪問正常就能連通。LVS 比較依賴網絡環境。只有使用 DR 模式且服務器在同一網段內分流,效果才能得到保證。

Nginx 可以通過服務器處理網頁返回的狀態嗎、超時等來檢測服務器內部的故障,並會把返回錯誤的請求重新發送到另一個節點。目前 LVS 和 LDirectd 也支持對服務器內部情況的監控,但不能重新發送請求。

比如用戶正在上傳一個文件,而處理該上傳信息的節點剛好出現故障,則 Nginx 會把上傳請求重新發送到另一臺服務器,而 LVS 在這種情況下會直接斷掉。Nginx 還能支持 HTTP 和 Email(Email 功能很少有人使用),LVS 所支持的應用在這個電商比 Nginx 更多。

Nginx 同樣能承受很高負載並且能穩定運行,由於處理流量受限於機器 I/O 等配置,所以負載能力相對較差。

Nginx 安裝、配置及測試相對來說比較簡單,因為有相應的錯誤日誌進行提示。LVS 的安裝、配置及測試所花的時間比較長,因為 LVS 對網絡以來比較大,很多時候有可能因為網絡問題而配置不能成功,出現問題時,解決的難度也相對較大。Nginx 本身沒有現成的熱備方案,所以在單機上運行風險較大,建議 KeepAlived 配合使用。另外,Nginx 可以作為 LVS 的節點機器使用,充分利用 Nginx 的功能和性能。當然這種情況也可以直接使用 Squid 等其他具備分發功能的軟件。

具體應用具體分析。如果是比較小型的網站(每日 PV 小於 100 萬),用戶 Nginx 就完全可以應對,如果機器也不少,可以用 DNS 輪詢。LVS 後用的機器較多,在構建大型網站或者提供重要服務且機器較多時,可多加考慮利用 LVS。

來源: http://www.blog.ituac.com

論:Nginx 和 LVS 的各種優缺點

猜你喜欢

转载自www.cnblogs.com/codenong/p/10026688.html