今天就跟大家聊聊有關(guān)nginx和lvs的優(yōu)缺點(diǎn),可能很多人都不太了解,為了讓大家更加了解,小編給大家總結(jié)了以下內(nèi)容,希望大家根據(jù)這篇文章可以有所收獲。
【關(guān)于LVS】
LVS的負(fù)載能力很強(qiáng),因?yàn)槠涔ぷ髂J椒浅:?jiǎn)單,僅進(jìn)行請(qǐng)求的分發(fā),而且其工作在第四層,沒有流量,在效率方面最高。
LVS是在四層,可以對(duì)幾乎所有的應(yīng)用作負(fù)載均衡。
但是LVS對(duì)于故障后端感知并不敏感,比如在DR模式下,要是有一個(gè)后端服務(wù)器沒有配置VIP,就會(huì)導(dǎo)致請(qǐng)求的一部分?jǐn)?shù)據(jù)會(huì)直接丟失。
且LVS對(duì)于網(wǎng)絡(luò)環(huán)境的穩(wěn)定性要求較高,如果請(qǐng)求失敗了,只能依賴于前端的應(yīng)用自身的重試機(jī)制,負(fù)載均衡不對(duì)請(qǐng)求進(jìn)行重新下發(fā)。
而且LVS也很受限于網(wǎng)絡(luò)架構(gòu),在設(shè)計(jì)之初就要考慮到網(wǎng)絡(luò)架構(gòu)是否滿足LVS負(fù)載的前置條件。
【關(guān)于nginx】
同樣的,nginx也可以用于負(fù)載均衡,但是由于nginx需要對(duì)源端/目的端都建立連接,所以處理流量的速度受限于機(jī)器I/O,CPU內(nèi)存等一系列配置,所以nginx的負(fù)載能力相對(duì)較差。
nginx安裝,配置都比較簡(jiǎn)單,與LVS對(duì)比,nginx不需要很嚴(yán)格的網(wǎng)絡(luò)架構(gòu),只要網(wǎng)絡(luò)可以聯(lián)通即可。
且nginx自身的重試機(jī)制,可以保證請(qǐng)求下發(fā)失敗之后,會(huì)重新下發(fā)到健康的后端上。
但是,nginx因?yàn)闆]有現(xiàn)成的熱備機(jī)制,所以,存在單點(diǎn)故障的問題,一般需要搭配keepalived使用。
不過,nginx作為一款應(yīng)用層負(fù)載均衡(后來引入stream模塊之后,四層也支持了),可以提供負(fù)載分擔(dān),貯備切換,HTTPS寫在,帶寬限速,隱藏真實(shí)IP,隱藏真實(shí)端口,屏蔽攻擊等能力,這是LVS所不能提供的。
【對(duì)比】
lvs和nginx都是現(xiàn)在很主流的負(fù)載均衡方式,他們各有優(yōu)缺點(diǎn),在生產(chǎn)環(huán)境需要根據(jù)其特點(diǎn)做選擇。