溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

LVS/HAProxy/Nginx的特點(diǎn)簡(jiǎn)介和對(duì)比是怎樣的

發(fā)布時(shí)間:2021-11-22 18:13:00 來(lái)源:億速云 閱讀:231 作者:柒染 欄目:云計(jì)算

LVS/HAProxy/Nginx的特點(diǎn)簡(jiǎn)介和對(duì)比是怎樣的,相信很多沒(méi)有經(jīng)驗(yàn)的人對(duì)此束手無(wú)策,為此本文總結(jié)了問(wèn)題出現(xiàn)的原因和解決方法,通過(guò)這篇文章希望你能解決這個(gè)問(wèn)題。

現(xiàn)在網(wǎng)站發(fā)展的趨勢(shì)對(duì)網(wǎng)絡(luò)負(fù)載均衡的使用是隨著網(wǎng)站規(guī)模的提升根據(jù)不同的階段來(lái)使用不同的技術(shù):
一種是通過(guò)硬件來(lái)進(jìn)行進(jìn)行,常見(jiàn)的硬件有比較昂貴的NetScaler、F5、Radware和Array等商用的負(fù)載均衡器,它的優(yōu)點(diǎn)就是有專業(yè)的維護(hù)團(tuán)隊(duì)來(lái)對(duì)這些服務(wù)進(jìn)行維護(hù)、缺點(diǎn)就是花銷太大,所以對(duì)于規(guī)模較小的網(wǎng)絡(luò)服務(wù)來(lái)說(shuō)暫時(shí)還沒(méi)有需要使用;另外一種就是類似于LVS/HAProxy、Nginx的基于Linux的開(kāi)源免費(fèi)的負(fù)載均衡軟件策略,這些都是通過(guò)軟件級(jí)別來(lái)實(shí)現(xiàn),所以費(fèi)用非常低廉,所以我個(gè)也比較推薦大家采用第二種方案來(lái)實(shí)施自己網(wǎng)站的負(fù)載均衡需求。

近期朋友劉鑫(紫雨荷雪)的項(xiàng)目成功上線了,PV達(dá)到了億級(jí)/日的訪問(wèn)量,最前端用的是HAProxy+Keepalived雙機(jī)作的負(fù)載均衡器/反向代理,整個(gè)網(wǎng)站非常穩(wěn)定;這讓我更堅(jiān)定了以前跟老男孩前輩聊的關(guān)于網(wǎng)站架構(gòu)比較合理設(shè)計(jì)的架構(gòu)方案:即Nginx/HAProxy+Keepalived作Web最前端的負(fù)載均衡器,后端的MySQL數(shù)據(jù)庫(kù)架構(gòu)采用一主多從,讀寫(xiě)分離的方式,采用LVS+Keepalived的方式。

在這里我也有一點(diǎn)要跟大家申明下:很多朋友擔(dān)心軟件級(jí)別的負(fù)載均衡在高并發(fā)流量沖擊下的穩(wěn)定情況,事實(shí)是我們通過(guò)成功上線的許多網(wǎng)站發(fā)現(xiàn),它們的穩(wěn)定性也是非常好的,宕機(jī)的可能性微乎其微,所以我現(xiàn)在做的項(xiàng)目,基本上沒(méi)考慮服務(wù)級(jí)別的高可用了。相信大家對(duì)這些軟件級(jí)別的負(fù)載均衡軟件都已經(jīng)有了很深的的認(rèn)識(shí),下面我就它們的特點(diǎn)和適用場(chǎng)合分別說(shuō)明下。

LVS:使用集群技術(shù)和Linux操作系統(tǒng)實(shí)現(xiàn)一個(gè)高性能、高可用的服務(wù)器,它具有很好的可伸縮性(Scalability)、可靠性(Reliability)和可管理性(Manageability),感謝章文嵩博士為我們提供如此強(qiáng)大實(shí)用的開(kāi)源軟件。
LVS的特點(diǎn)是:
1、抗負(fù)載能力強(qiáng)、是工作在網(wǎng)絡(luò)4層之上僅作分發(fā)之用,沒(méi)有流量的產(chǎn)生,這個(gè)特點(diǎn)也決定了它在負(fù)載均衡軟件里的性能最強(qiáng)的;
2、配置性比較低,這是一個(gè)缺點(diǎn)也是一個(gè)優(yōu)點(diǎn),因?yàn)闆](méi)有可太多配置的東西,所以并不需要太多接觸,大大減少了人為出錯(cuò)的幾率;
3、工作穩(wěn)定,自身有完整的雙機(jī)熱備方案,如LVS+Keepalived和LVS+Heartbeat,不過(guò)我們?cè)陧?xiàng)目實(shí)施中用得最多的還是LVS/DR+Keepalived;
4、無(wú)流量,保證了均衡器IO的性能不會(huì)收到大流量的影響;
5、應(yīng)用范圍比較廣,可以對(duì)所有應(yīng)用做負(fù)載均衡;
6、軟件本身不支持正則處理,不能做動(dòng)靜分離,這個(gè)就比較遺憾了;其實(shí)現(xiàn)在許多網(wǎng)站在這方面都有較強(qiáng)的需求,這個(gè)是Nginx/HAProxy+Keepalived的優(yōu)勢(shì)所在。
7、如果是網(wǎng)站應(yīng)用比較龐大的話,實(shí)施LVS/DR+Keepalived起來(lái)就比較復(fù)雜了,特別后面有Windows Server應(yīng)用的機(jī)器的話,如果實(shí)施及配置還有維護(hù)過(guò)程就比較復(fù)雜了,相對(duì)而言,Nginx/HAProxy+Keepalived就簡(jiǎn)單多了。

Nginx的特點(diǎn)是:
1、工作在網(wǎng)絡(luò)的7層之上,可以針對(duì)http應(yīng)用做一些分流的策略,比如針對(duì)域名、目錄結(jié)構(gòu),它的正則規(guī)則比HAProxy更為強(qiáng)大和靈活,這也是許多朋友喜歡它的原因之一;
2、Nginx對(duì)網(wǎng)絡(luò)的依賴非常小,理論上能ping通就就能進(jìn)行負(fù)載功能,這個(gè)也是它的優(yōu)勢(shì)所在;
3、Nginx安裝和配置比較簡(jiǎn)單,測(cè)試起來(lái)比較方便;
4、也可以承擔(dān)高的負(fù)載壓力且穩(wěn)定,一般能支撐超過(guò)幾萬(wàn)次的并發(fā)量;
5、Nginx可以通過(guò)端口檢測(cè)到服務(wù)器內(nèi)部的故障,比如根據(jù)服務(wù)器處理網(wǎng)頁(yè)返回的狀態(tài)碼、超時(shí)等等,并且會(huì)把返回錯(cuò)誤的請(qǐng)求重新提交到另一個(gè)節(jié)點(diǎn),不過(guò)其中缺點(diǎn)就是不支持url來(lái)檢測(cè);
6、Nginx僅能支持http和Email,這樣就在適用范圍上面小很多,這個(gè)它的弱勢(shì);
7、Nginx不僅僅是一款優(yōu)秀的負(fù)載均衡器/反向代理軟件,它同時(shí)也是功能強(qiáng)大的Web應(yīng)用服務(wù)器。LNMP現(xiàn)在也是非常流行的web架構(gòu),大有和以前最流行的LAMP架構(gòu)分庭抗?fàn)幹畡?shì),在高流量的環(huán)境中也有很好的效果。
8、Nginx現(xiàn)在作為Web反向加速緩存越來(lái)越成熟了,很多朋友都已在生產(chǎn)環(huán)境下投入生產(chǎn)了,而且反映效果不錯(cuò),速度比傳統(tǒng)的Squid服務(wù)器更快,有興趣的朋友可以考慮用其作為反向代理加速器。

HAProxy的特點(diǎn)是:
1、HAProxy是支持虛擬主機(jī)的,以前有朋友說(shuō)這個(gè)不支持虛擬主機(jī),我這里特此更正一下。
2、能夠補(bǔ)充Nginx的一些缺點(diǎn)比如Session的保持,Cookie的引導(dǎo)等工作
3、支持url檢測(cè)后端的服務(wù)器出問(wèn)題的檢測(cè)會(huì)有很好的幫助。
4、它跟LVS一樣,本身僅僅就只是一款負(fù)載均衡軟件;單純從效率上來(lái)講HAProxy更會(huì)比Nginx有更出色的負(fù)載均衡速度,在并發(fā)處理上也是優(yōu)于Nginx的。
5、HAProxy可以對(duì)Mysql讀進(jìn)行負(fù)載均衡,對(duì)后端的MySQL節(jié)點(diǎn)進(jìn)行檢測(cè)和負(fù)載均衡,不過(guò)在后端的MySQL slaves數(shù)量超過(guò)10臺(tái)時(shí)性能不如LVS,所以我向大家推薦LVS+Keepalived。
6、HAProxy的算法現(xiàn)在也越來(lái)越多了,具體有如下8種:
①roundrobin,表示簡(jiǎn)單的輪詢,這個(gè)不多說(shuō),這個(gè)是負(fù)載均衡基本都具備的;
②static-rr,表示根據(jù)權(quán)重,建議關(guān)注;
③leastconn,表示最少連接者先處理,建議關(guān)注;
④source,表示根據(jù)請(qǐng)求源IP,這個(gè)跟Nginx的IP_hash機(jī)制類似,我們用其作為解決session問(wèn)題的一種方法,建議關(guān)注;
⑤ri,表示根據(jù)請(qǐng)求的URI;
⑥r(nóng)l_param,表示根據(jù)請(qǐng)求的URl參數(shù)'balance url_param' requires an URL parameter name;
⑦h(yuǎn)dr(name),表示根據(jù)HTTP請(qǐng)求頭來(lái)鎖定每一次HTTP請(qǐng)求;
⑧rdp-cookie(name),表示根據(jù)據(jù)cookie(name)來(lái)鎖定并哈希每一次TCP請(qǐng)求。

看完上述內(nèi)容,你們掌握LVS/HAProxy/Nginx的特點(diǎn)簡(jiǎn)介和對(duì)比是怎樣的的方法了嗎?如果還想學(xué)到更多技能或想了解更多相關(guān)內(nèi)容,歡迎關(guān)注億速云行業(yè)資訊頻道,感謝各位的閱讀!

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI