全部視頻問答文庫資訊圖片貼吧應(yīng)用購物職位地圖音樂(總結(jié))Nginx/LVS/HAProxy負載均衡軟件的優(yōu)缺點詳解3、HAProxy跟LVS類似,本身就只是一款負載均衡軟件;單純從效率上來講HAProxy會比Nginx有更出色的負載均衡速度...www.ha97.com ? ...大家還搜
lvs與nginx區(qū)別github lvsecs lvsnginx解讀lvs和keepalived區(qū)別4臺nginx如何集群負載均衡需要修改程序批量上傳文件腳本shellnginx負載均衡原理lvs管理工具freeswitch bridge 源碼lvs負載均衡原理haproxy二次開發(fā)haproxy mysqllvs udphaproxy原理后端lvsudp反向代理和負載均衡haproxy和nginx的區(qū)別WordPress 負載均衡nginx可配置多個代理么haproxy layer7 timeouthaproxy優(yōu)缺點負載均衡的開源軟件varnish和lvslvs haproxynginxtcp負載均衡openresty監(jiān)控LVS 負載均衡 - 我的開源中國開源軟件有Nginx、LVS、Haproxy (ngnix和haproxy是七層負載均衡,LVS是四層負載均衡) 商業(yè)的硬件負載均衡...https://my.oschina...2018年5月19日
應(yīng)用負載均衡之LVS(一):基本概念和三種模式_搜..._搜狐4. LVS負載均衡的調(diào)度算法 網(wǎng)站架構(gòu)中,負載均衡技術(shù)是實現(xiàn)網(wǎng)站架構(gòu)伸縮性的主要手段之一。所謂...搜狐網(wǎng)2018年2月18日
負載均衡(LVS DR模式搭建,DR只用一個公網(wǎng)ip,...2.keepalived內(nèi)置了ipvsadm的功能,所以不需要暗轉(zhuǎn)ipvsadm包,也不用編寫和執(zhí)行dir上的腳本,但是兩...https://cloud.tencent...2018年4月29日
LVS+Keepalived負載均衡安裝配置筆記 - 糊涂不糊涂 - ....Linux LVS+Keepalived負載均衡安裝配置筆記 CentOS7 搭建LVS+keepalived負載均衡(一) LVS+Keepalived實現(xiàn)負載均衡...hmw.iteye.com ? blog2018年8月11日
LVS+keepalived_開源負載均衡集群系統(tǒng)_集群和高可用_...采用LVS/DR keepalived 實現(xiàn)高可用負載均衡,測試中發(fā)現(xiàn)的問題希望和大家討論解決。 asheley 2 2304 MySQL CLU...bbs.chinaunix.net ? tree ? ...負載均衡集群+LVS配置詳解 - 簡書LVS-負載均衡原理 負載均衡集群是 load balance 集群的簡寫,翻譯成中文就是負載均衡集群。常用的負載均衡開...https://www.jianshu...2018年2月5日
如何理解LVS負載均衡的模式和算法_百度經(jīng)驗LVS負載均衡的工作模式有什么特點,涉及哪些算法?百度經(jīng)驗:jingyan.baidu.com 方法/步驟 1 LVS-NAT模型的特性:RS應(yīng)該使用私有地址,RS的網(wǎng)關(guān)必須指向DIP;DIP和RIP必...百度經(jīng)驗2018年8月9日
LVS3種負載均衡技術(shù)腳本-CSDN下載LVS3中負載均衡技術(shù)腳本文件 免積分下載CSDN下載頻道lvs 負載均衡/blog - CSDN搜索使用LVS實現(xiàn)負載均衡原理及安裝配置詳解 負載均衡集群是 load balance 集群的簡寫,翻譯成中文就是負載均衡集群...https://so.csdn.net ? so ? ...dns負載均衡 Citrix ADC Application...Citrix ADC是業(yè)界一流的應(yīng)用交付控制器,被數(shù)以千計的企業(yè)網(wǎng)絡(luò)部署,提供經(jīng)過證明的L4-7負載均衡和GSLB,保障出色應(yīng)用性能及可靠性.現(xiàn)在用...[相關(guān)]全局負載均衡(GSLB)[關(guān)注]了解應(yīng)用程序的負載均衡[專題]負載均衡設(shè)備citrix.com.cn廣告
評價 相關(guān)搜索
lvs負載均衡httplvs圖片負載均衡lvs負載均衡修改的參數(shù)lvs負載均衡集群lvs負載均衡方式有哪些lvs 四層負載均衡lvs 負載均衡 DDOSlvs實現(xiàn)http負載均衡負載均衡lvs和nginxlvs負載均衡群集怎么做第 2 頁
百度網(wǎng)頁版首頁用戶登錄Baidu 京ICP證03017Nginx/LVS/HAProxy負載均衡軟件的優(yōu)Nginx/LVS/HAProxy負載均衡軟件的優(yōu)缺點詳解
(總結(jié))Nginx/LVS/HAProxy負載均衡軟件的優(yōu)缺點詳解
發(fā)表于:Linux Server
PS:
Nginx/LVS/HAProxy是目前使用最廣泛的三種負載均衡軟件,本人都在多個項目中實施過,參考了一些資料,結(jié)合自己的一些使用經(jīng)驗,總結(jié)一下。
一般對負載均衡的使用是隨著網(wǎng)站規(guī)模的提升根據(jù)不同的階段來使用不同的技術(shù)。具體的應(yīng)用需求還得具體分析,如果是中小型的Web應(yīng)用,比如日PV小于1000萬,用Nginx就完全可以了;如果機器不少,可以用DNS
輪詢,LVS所耗費的機器還是比較多的;大型網(wǎng)站或重要的服務(wù),且
服務(wù)器比較多時,可以考慮用LVS。
一種是通過硬件來進行進行,常見的硬件有比較昂貴的F5和Array等商用的負載均衡器,它的優(yōu)點就是有專業(yè)的維護團隊來對這些服務(wù)進行維護、缺點就是花銷太大,所以對于規(guī)模較小的網(wǎng)絡(luò)服務(wù)來說暫時還沒有需要使用;另外一種就是類似于Nginx/LVS/HAProxy的基于
Linux的開源免費的負載均衡軟件,這些都是通過軟件級別來實現(xiàn),所以費用非常低廉。
目前關(guān)于網(wǎng)站架構(gòu)一般比較合理流行的架構(gòu)方案:Web前端采用Nginx/HAProxy+Keepalived作負載均衡器;后端采用
MySQL數(shù)據(jù)庫一主多從和讀寫分離,采用LVS+Keepalived的架構(gòu)。當然要根據(jù)項目具體需求制定方案。
下面說說各自的特點和適用場合。
一、Nginx
Nginx的優(yōu)點是:
1、工作在網(wǎng)絡(luò)的7層之上,可以針對http應(yīng)用做一些分流的策略,比如針對域名、目錄結(jié)構(gòu),它的正則規(guī)則比HAProxy更為強大和靈活,這也是它目前廣泛流行的主要原因之一,Nginx單憑這點可利用的場合就遠多于LVS了。
2、Nginx對網(wǎng)絡(luò)穩(wěn)定性的依賴非常小,理論上能ping通就就能進行負載功能,這個也是它的優(yōu)勢之一;相反LVS對網(wǎng)絡(luò)穩(wěn)定性依賴比較大,這點本人深有體會;
3、Nginx安裝和配置比較簡單,測試起來比較方便,它基本能把錯誤用日志打印出來。LVS的配置、測試就要花比較長的時間了,LVS對網(wǎng)絡(luò)依賴比較大。
3、可以承擔高負載壓力且穩(wěn)定,在硬件不差的情況下一般能支撐幾萬次的并發(fā)量,負載度比LVS相對小些。
4、Nginx可以通過端口檢測到
服務(wù)器內(nèi)部的故障,比如根據(jù)
服務(wù)器處理網(wǎng)頁返回的狀態(tài)碼、超時等等,并且會把返回錯誤的請求重新提交到另一個節(jié)點,不過其中缺點就是不支持url來檢測。比如用戶正在上傳一個文件,而處理該上傳的節(jié)點剛好在上傳過程中出現(xiàn)故障,Nginx會把上傳切到另一臺
服務(wù)器重新處理,而LVS就直接斷掉了,如果是上傳一個很大的文件或者很重要的文件的話,用戶可能會因此而不滿。
5、Nginx不僅僅是一款優(yōu)秀的負載均衡器/
反向代理軟件,它同時也是功能強大的Web應(yīng)用服務(wù)器。LNMP也是近幾年非常流行的web架構(gòu),在高流量的環(huán)境中穩(wěn)定性也很好。
6、Nginx現(xiàn)在作為Web反向加速緩存越來越成熟了,速度比傳統(tǒng)的
Squid服務(wù)器更快,可以考慮用其作為
反向代理加速器。
7、Nginx可作為中層
反向代理使用,這一層面Nginx基本上無對手,唯一可以對比Nginx的就只有l(wèi)ighttpd了,不過lighttpd目前還沒有做到Nginx完全的功能,配置也不那么清晰易讀,社區(qū)資料也遠遠沒Nginx活躍。
8、Nginx也可作為靜態(tài)網(wǎng)頁和圖片服務(wù)器,這方面的性能也無對手。還有Nginx社區(qū)非?;钴S,第三方模塊也很多。
淘寶的前端使用的Tengine就是基于nginx做的二次開發(fā)定制版。
Nginx常規(guī)的HTTP請求和響應(yīng)流程圖:
Nginx的缺點是:
1、Nginx僅能支持http、
https和Email協(xié)議,這樣就在適用范圍上面小些,這個是它的缺點。
2、對后端服務(wù)器的健康檢查,只支持通過端口來檢測,不支持通過url來檢測。不支持Session的直接保持,但能通過ip_hash來解決。
二、LVS
LVS:使用
Linux內(nèi)核集群實現(xiàn)一個高性能、高可用的負載均衡服務(wù)器,它具有很好的可伸縮性(Scalability)、可靠性(Reliability)和可管理性(Manageability)。
LVS的優(yōu)點是:
1、抗負載能力強、是工作在網(wǎng)絡(luò)4層之上僅作分發(fā)之用,沒有流量的產(chǎn)生,這個特點也決定了它在負載均衡軟件里的性能最強的,對內(nèi)存和cpu資源消耗比較低。
2、配置性比較低,這是一個缺點也是一個優(yōu)點,因為沒有可太多配置的東西,所以并不需要太多接觸,大大減少了人為出錯的幾率。
3、工作穩(wěn)定,因為其本身抗負載能力很強,自身有完整的雙機熱備方案,如LVS+Keepalived,不過我們在項目實施中用得最多的還是LVS/DR+Keepalived。
4、無流量,LVS只分發(fā)請求,而流量并不從它本身出去,這點保證了均衡器IO的性能不會收到大流量的影響。
5、應(yīng)用范圍比較廣,因為LVS工作在4層,所以它幾乎可以對所有應(yīng)用做負載均衡,包括http、數(shù)據(jù)庫、
在線聊天室等等。
LVS DR(Direct Routing)模式的網(wǎng)絡(luò)流程圖:
LVS的缺點是:
1、軟件本身不支持正則表達式處理,不能做動靜分離;而現(xiàn)在許多網(wǎng)站在這方面都有較強的需求,這個是Nginx/HAProxy+Keepalived的優(yōu)勢所在。
2、如果是網(wǎng)站應(yīng)用比較龐大的話,LVS/DR+Keepalived實施起來就比較復(fù)雜了,特別后面有Windows
Server的機器的話,如果實施及配置還有維護過程就比較復(fù)雜了,相對而言,Nginx/HAProxy+Keepalived就簡單多了。
三、HAProxy
HAProxy的特點是:
1、HAProxy也是支持虛擬主機的。
2、HAProxy的優(yōu)點能夠補充Nginx的一些缺點,比如支持Session的保持,Cookie的引導(dǎo);同時支持通過獲取指定的url來檢測后端服務(wù)器的狀態(tài)。
3、HAProxy跟LVS類似,本身就只是一款負載均衡軟件;單純從效率上來講HAProxy會比Nginx有更出色的負載均衡速度,在并發(fā)處理上也是優(yōu)于Nginx的。
4、HAProxy支持TCP協(xié)議的負載均衡轉(zhuǎn)發(fā),可以對MySQL讀進行負載均衡,對后端的MySQL節(jié)點進行檢測和負載均衡,大家可以用LVS+Keepalived對MySQL主從做負載均衡。
5、HAProxy負載均衡策略非常多,HAProxy的負載均衡算法現(xiàn)在具體有如下8種:
① roundrobin,表示簡單的
輪詢,這個不多說,這個是負載均衡基本都具備的;
② static-rr,表示根據(jù)權(quán)重,建議關(guān)注;
③ leastconn,表示最少連接者先處理,建議關(guān)注;
④ source,表示根據(jù)請求源IP,這個跟Nginx的IP_hash機制類似,我們用其作為解決session問題的一種方法,建議關(guān)注;
⑤ ri,表示根據(jù)請求的URI;
⑥ rl_param,表示根據(jù)請求的URl參數(shù)’balance url_param’ requires an URL parameter name;
⑦ hdr(name),表示根據(jù)HTTP請求頭來鎖定每一次HTTP請求;
⑧ rdp-cookie(name),表示根據(jù)據(jù)cookie(name)來鎖定并哈希每一次TCP請求。
四、總結(jié)
Nginx和LVS對比的總結(jié):
1、Nginx工作在網(wǎng)絡(luò)的7層,所以它可以針對http應(yīng)用本身來做分流策略,比如針對域名、目錄結(jié)構(gòu)等,相比之下LVS并不具備這樣的功能,所以Nginx單憑這點可利用的場合就遠多于LVS了;但Nginx有用的這些功能使其可調(diào)整度要高于LVS,所以經(jīng)常要去觸碰觸碰,觸碰多了,人為出問題的幾率也就會大。
2、Nginx對網(wǎng)絡(luò)穩(wěn)定性的依賴較小,理論上只要ping得通,網(wǎng)頁訪問正常,Nginx就能連得通,這是Nginx的一大優(yōu)勢!Nginx同時還能區(qū)分內(nèi)外網(wǎng),如果是同時擁有內(nèi)外網(wǎng)的節(jié)點,就相當于單機擁有了備份線路;LVS就比較依賴于網(wǎng)絡(luò)環(huán)境,目前來看服務(wù)器在
同一網(wǎng)段內(nèi)并且LVS使用direct方式分流,效果較能得到保證。另外注意,LVS需要向托管商至少申請多一個ip來做Visual IP,貌似是不能用本身的IP來做VIP的。要做好LVS管理員,確實得跟進學習很多有關(guān)網(wǎng)絡(luò)通信方面的知識,就不再是一個HTTP那么簡單了。
3、Nginx安裝和配置比較簡單,測試起來也很方便,因為它基本能把錯誤用日志打印出來。LVS的安裝和配置、測試就要花比較長的時間了;LVS對網(wǎng)絡(luò)依賴比較大,很多時候不能配置成功都是因為網(wǎng)絡(luò)問題而不是配置問題,出了問題要解決也相應(yīng)的會麻煩得多。
4、Nginx也同樣能承受很高負載且穩(wěn)定,但負載度和穩(wěn)定度差LVS還有幾個等級:Nginx處理所有流量所以受限于機器IO和配置;本身的bug也還是難以避免的。
5、Nginx可以檢測到服務(wù)器內(nèi)部的故障,比如根據(jù)服務(wù)器處理網(wǎng)頁返回的狀態(tài)碼、超時等等,并且會把返回錯誤的請求重新提交到另一個節(jié)點。目前LVS中 ldirectd也能支持針對服務(wù)器內(nèi)部的情況來監(jiān)控,但LVS的原理使其不能重發(fā)請求。比如用戶正在上傳一個文件,而處理該上傳的節(jié)點剛好在上傳過程中出現(xiàn)故障,Nginx會把上傳切到另一臺服務(wù)器重新處理,而LVS就直接斷掉了,如果是上傳一個很大的文件或者很重要的文件的話,用戶可能會因此而惱火。
6、Nginx對請求的
異步處理可以幫助節(jié)點服務(wù)器減輕負載,假如使用apache直接對外服務(wù),那么出現(xiàn)很多的窄帶鏈接時apache服務(wù)器將會占用大 量內(nèi)存而不能釋放,使用多一個Nginx做apache代理的話,這些窄帶鏈接會被Nginx擋住,apache上就不會堆積過多的請求,這樣就減少了相當多的資源占用。這點使用squid也有相同的作用,即使squid本身配置為不緩存,對apache還是有很大幫助的。
7、Nginx能支持http、https和email(email的功能比較少用),LVS所支持的應(yīng)用在這點上會比Nginx更多。在使用上,一般最前端所采取的策略應(yīng)是LVS,也就是DNS的指向應(yīng)為LVS均衡器,LVS的優(yōu)點令它非常適合做這個任務(wù)。重要的ip地址,最好交由LVS托管,比如數(shù)據(jù)庫的 ip、webservice服務(wù)器的ip等等,這些ip地址隨著時間推移,使用面會越來越大,如果更換ip則故障會接踵而至。所以將這些重要ip交給 LVS托管是最為穩(wěn)妥的,這樣做的唯一缺點是需要的VIP數(shù)量會比較多。Nginx可作為LVS節(jié)點機器使用,一是可以利用Nginx的功能,二是可以利用Nginx的性能。當然這一層面也可以直接使用squid,squid的功能方面就比Nginx弱不少了,性能上也有所遜色于Nginx。Nginx也可作為中層代理使用,這一層面Nginx基本上無對手,唯一可以撼動Nginx的就只有l(wèi)ighttpd了,不過lighttpd目前還沒有能做到 Nginx完全的功能,配置也不那么清晰易讀。另外,中層代理的IP也是重要的,所以中層代理也擁有一個VIP和LVS是最完美的方案了。具體的應(yīng)用還得具體分析,如果是比較小的網(wǎng)站(日PV小于1000萬),用Nginx就完全可以了,如果機器也不少,可以用DNS
輪詢,LVS所耗費的機器還是比較多的;大型網(wǎng)站或者重要的服務(wù),機器不發(fā)愁的時候,要多多考慮利用LVS。
現(xiàn)在對網(wǎng)絡(luò)負載均衡的使用是隨著網(wǎng)站規(guī)模的提升根據(jù)不同的階段來使用不同的技術(shù):
第一階段:利用Nginx或HAProxy進行單點的負載均衡,這一階段服務(wù)器規(guī)模剛脫離開單服務(wù)器、單數(shù)據(jù)庫的模式,需要一定的負載均衡,但是仍然規(guī)模較小沒有專業(yè)的維護團隊來進行維護,也沒有需要進行大規(guī)模的網(wǎng)站部署。這樣利用Nginx或HAproxy就是第一選擇,此時這些東西上手快, 配置容易,在七層之上利用HTTP協(xié)議就可以。這時是第一選擇。
第二階段:隨著網(wǎng)絡(luò)服務(wù)進一步擴大,這時單點的Nginx已經(jīng)不能滿足,這時使用LVS或者商用Array就是首要選擇,Nginx此時就作為LVS或者Array的節(jié)點來使用,具體LVS或Array的是選擇是根據(jù)公司規(guī)模和預(yù)算來選擇,Array的應(yīng)用交付功能非常強大,本人在某項目中使用過,性價比也遠高于F5,商用首選!但是一般來說這階段相關(guān)人才跟不上業(yè)務(wù)的提升,所以購買商業(yè)負載均衡已經(jīng)成為了必經(jīng)之路。
第三階段:這時網(wǎng)絡(luò)服務(wù)已經(jīng)成為主流產(chǎn)品,此時隨著公司知名度也進一步擴展,相關(guān)人才的能力以及數(shù)量也隨之提升,這時無論從開發(fā)適合自身產(chǎn)品的定制,以及降低成本來講開源的LVS,已經(jīng)成為首選,這時LVS會成為主流。