觀nginx與lvs負(fù)載均衡的較量
在技術(shù)工作者中,常用到的就是lvs負(fù)載均衡和Nginx負(fù)載均衡了。這兩者也是比較普及的。那么,根據(jù)不同的需求,兩者存在著不同的優(yōu)勢。具體選擇哪一個,還要看您的要求了。那么我們在此為大家分享一篇文章,對兩者進行了對比,希望能給您一個參考。
下面來分析一下lvs負(fù)載均衡和Nginx負(fù)載均衡的區(qū)別:
一、lvs負(fù)載均衡的優(yōu)勢:
1、抗負(fù)載能力強,因為lvs工作方式的邏輯是非常之簡單,而且工作在網(wǎng)絡(luò)4層僅做請求分發(fā)之用,沒有流量,所以在效率上基本不需要太過考慮。在我手里的lvs,僅僅出過一次問題:在并發(fā)***的一小段時間內(nèi)均衡器出現(xiàn)丟包現(xiàn)象,據(jù)分析為網(wǎng)絡(luò)問題,即網(wǎng)卡或linux2.4內(nèi)核的承載能力已到上限,內(nèi)存和cpu方面基本無消耗。
2、配置性低,這通常是一大劣勢,但同時也是一大優(yōu)勢,因為沒有太多可配置的選項,所以除了增減服務(wù)器,并不需要經(jīng)常去觸碰它,大大減少了人為出錯的幾率。
3、工作穩(wěn)定,因為其本身抗負(fù)載能力很強,所以穩(wěn)定性高也是順理成章,另外各種lvs都有完整的雙機熱備方案,所以一點不用擔(dān)心均衡器本身會出什么問題,節(jié)點出現(xiàn)故障的話,lvs會自動判別,所以系統(tǒng)整體是非常穩(wěn)定的。
4、無流量,上面已經(jīng)有所提及了。lvs僅僅分發(fā)請求,而流量并不從它本身出去,所以可以利用它這點來做一些線路分流之用。沒有流量同時也保住了均衡器的IO性能不會受到大流量的影響。
5、基本上能支持所有應(yīng)用,因為lvs工作在4層,所以它可以對幾乎所有應(yīng)用做負(fù)載均衡,包括http、數(shù)據(jù)庫、聊天室等等。
另:lvs也不是完全能判別節(jié)點故障的,譬如在wlc分配方式下,集群里有一個節(jié)點沒有配置VIP,會使整個集群不能使用,這時使用wrr分配方式則會丟掉一臺機。目前這個問題還在進一步測試中。所以,用lvs也得多多當(dāng)心為妙。
二、nginx和lvs負(fù)載均衡作對比的結(jié)果
1、nginx工作在網(wǎng)絡(luò)的7層,所以它可以針對http應(yīng)用本身來做分流策略,比如針對域名、目錄結(jié)構(gòu)等,相比之下lvs并不具備這樣的功能,所以nginx單憑這點可利用的場合就遠(yuǎn)多于lvs了;但nginx有用的這些功能使其可調(diào)整度要高于lvs,所以經(jīng)常要去觸碰觸碰,由lvs的第2條優(yōu)點看,觸碰多了,人為出問題的幾率也就會大。
2、nginx對網(wǎng)絡(luò)的依賴較小,理論上只要ping得通,網(wǎng)頁訪問正常,nginx就能連得通,nginx同時還能區(qū)分內(nèi)外網(wǎng),如果是同時擁有內(nèi)外網(wǎng)的節(jié)點,就相當(dāng)于單機擁有了備份線路;lvs就比較依賴于網(wǎng)絡(luò)環(huán)境,目前來看服務(wù)器在同一網(wǎng)段內(nèi)并且lvs使用direct方式分流,效果較能得到保證。另外注意,lvs需要向托管商至少申請多一個ip來做Visual IP,貌似是不能用本身的IP來做VIP的。要做好LVS管理員,確實得跟進學(xué)習(xí)很多有關(guān)網(wǎng)絡(luò)通信方面的知識,就不再是一個HTTP那么簡單了。
三、后話
lvs和nginx都可以用作多機負(fù)載的方案,它們各有優(yōu)缺,在生產(chǎn)環(huán)境中需要好好分析實際情況并加以利用。做技術(shù)切不可人云亦云,我云即你云;同時也不可太趨向保守,過于相信舊有方式而等別人來幫你做墊被測試。把所有即時聽說到的好東西加以鉆研,從而提高自己對技術(shù)的認(rèn)知和水平,乃是一個好習(xí)慣。






















