您好,登錄后才能下訂單哦!
今天就跟大家聊聊有關nginx和lvs的優缺點,可能很多人都不太了解,為了讓大家更加了解,小編給大家總結了以下內容,希望大家根據這篇文章可以有所收獲。
【關于LVS】
LVS的負載能力很強,因為其工作模式非常簡單,僅進行請求的分發,而且其工作在第四層,沒有流量,在效率方面最高。
LVS是在四層,可以對幾乎所有的應用作負載均衡。
但是LVS對于故障后端感知并不敏感,比如在DR模式下,要是有一個后端服務器沒有配置VIP,就會導致請求的一部分數據會直接丟失。
且LVS對于網絡環境的穩定性要求較高,如果請求失敗了,只能依賴于前端的應用自身的重試機制,負載均衡不對請求進行重新下發。
而且LVS也很受限于網絡架構,在設計之初就要考慮到網絡架構是否滿足LVS負載的前置條件。
【關于nginx】
同樣的,nginx也可以用于負載均衡,但是由于nginx需要對源端/目的端都建立連接,所以處理流量的速度受限于機器I/O,CPU內存等一系列配置,所以nginx的負載能力相對較差。
nginx安裝,配置都比較簡單,與LVS對比,nginx不需要很嚴格的網絡架構,只要網絡可以聯通即可。
且nginx自身的重試機制,可以保證請求下發失敗之后,會重新下發到健康的后端上。
但是,nginx因為沒有現成的熱備機制,所以,存在單點故障的問題,一般需要搭配keepalived使用。
不過,nginx作為一款應用層負載均衡(后來引入stream模塊之后,四層也支持了),可以提供負載分擔,貯備切換,HTTPS寫在,帶寬限速,隱藏真實IP,隱藏真實端口,屏蔽攻擊等能力,這是LVS所不能提供的。
【對比】
lvs和nginx都是現在很主流的負載均衡方式,他們各有優缺點,在生產環境需要根據其特點做選擇。
LVS | Nginx | |
四層 | 四層/七層 | |
抗負載能力 | 強 | 弱 |
配置性 | 可配置性低 同時也減少了人為出錯的概率 | 可配置性高 可以配置一些高級功能 |
穩定性 | 穩定性高 有完整的雙機熱備方案 | 穩定性低,有單機故障 無現成的雙機熱備方案 |
網絡架構依賴 | 強依賴 非常依賴網絡架構設計 當然可以采用比較簡單的NAT方式解決此問題 | 無依賴 |
網絡穩定性依賴 | 依賴 數據包分發到壞的后端,不會重新分發,會直接返回錯誤 | 不依賴 數據包分發到壞的后端并返回錯誤后,會嘗試重新分發到健康的后端 |
網絡流量 | 僅請求流量經過lvs的網絡,響應流量由后端服務器的網絡返回。 FULL_NAT同Nginx。 | 所有的請求和響應流量都會經過nginx |
宿主機性能要求 | 要求較低 lvs僅僅做分發請求,流量并不從它本身出去,所以瓶頸僅僅受限于網絡帶寬和網卡性能 | 要求較高 因為nginx需要對源端和目的端都單獨建立連接,中間還涉及到一些數據包的解析處理,所以依賴宿主機的I/O性能和CPU內存 |
轉發方式 | 同步轉發 lvs服務器接收到請求之后,立即redirect到一個后端服務器,由客戶端直接和后端服務器建立連接。 | 異步轉發 在保持客戶端連接的同時,發起一個相同內容的新請求到后端,等后端返回結果后,由nginx返回給客戶端 |
其他 | 支持rewrite重寫規則:能夠根據域名、url的不同,將http請求分到不同的后端服務器群組。 節省帶寬:支持gzip壓縮,可以添加瀏覽器本地緩存的header頭。 |
【兩者配合】
在使用上,一般最前端所采取的的策略應是lvs,也就是dns的指向應為lvs均衡器,主要原因在于nginx雖然功能強大,但是當作為后端的服務器規模龐大時,nginx的網絡帶寬就成了一個巨大的瓶頸。
但是當lvs作為負載均衡的話,一旦后端接受到請求的服務器出了問題,那么這次請求就失敗了。
所以在很多情況下,nginx會作為lvs的節點進行負載均衡,這樣,既可以避免nginx的性能造成很嚴重的帶寬瓶頸,也可以利用nginx的錯誤重傳避免lvs一錘子買賣,還能利用nginx的各種高級功能,包括https卸載,報文頭修改等。
看完上述內容,你們對nginx和lvs的優缺點有進一步的了解嗎?如果還想了解更多知識或者相關內容,請關注億速云行業資訊頻道,感謝大家的支持。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。