4層代理和7層代理的區(qū)別

大家都知道4層代理要比7層代理性能高很多斟湃,也就是lvs的轉(zhuǎn)發(fā)性能遠(yuǎn)遠(yuǎn)超過nginx凝赛。下面來具體說下為什么

四層是TCP層,使用IP+端口的方式捆昏。類似路由器毙沾,只是修改下IP地址,然后轉(zhuǎn)發(fā)給后端服務(wù)器寇仓,TCP三次握手是直接和后端連接的烤宙。只不過在后端機(jī)器上看到的都是與代理機(jī)的IP的established而已门烂。

7層代理則必須要先和代理機(jī)三次握手后兄淫,才能得到7層(HTT層)的具體內(nèi)容捕虽,然后再轉(zhuǎn)發(fā)。意思就是代理機(jī)必須要與client和后端的機(jī)器都要建立連接房揭。顯然性能不行了,但勝在于七層恬砂,能寫更多的轉(zhuǎn)發(fā)規(guī)則

具體內(nèi)容可參考:http://www.reibang.com/p/fa937b8e6712

一蓬痒、簡介

** 所謂四層就是基于IP+端口的負(fù)載均衡梧奢;七層就是基于URL等應(yīng)用層信息的負(fù)載均衡;**同理趋惨,還有基于MAC地址的二層負(fù)載均衡和基于IP地址的三層負(fù)載均衡惦蚊。 換句換說,二層負(fù)載均衡會通過一個虛擬MAC地址接收請求曾撤,然后再分配到真實(shí)的MAC地址挤悉;三層負(fù)載均衡會通過一個虛擬IP地址接收請求巫湘,然后再分配到真實(shí)的IP地址;四層通過虛擬IP+端口接收請求诀诊,然后再分配到真實(shí)的服務(wù)器阅嘶;七層通過虛擬的URL或主機(jī)名接收請求讯柔,然后再分配到真實(shí)的服務(wù)器。

** 所謂的四到七層負(fù)載均衡粗截,就是在對后臺的服務(wù)器進(jìn)行負(fù)載均衡時熊昌,依據(jù)四層的信息或七層的信息來決定怎么樣轉(zhuǎn)發(fā)流量。** 比如四層的負(fù)載均衡灭美,就是通過發(fā)布三層的IP地址(VIP)选泻,然后加四層的端口號,來決定哪些流量需要做負(fù)載均衡梯捕,對需要處理的流量進(jìn)行NAT處理傀顾,轉(zhuǎn)發(fā)至后臺服務(wù)器碌奉,并記錄下這個TCP或者UDP的流量是由哪臺服務(wù)器處理的,后續(xù)這個連接的所有流量都同樣轉(zhuǎn)發(fā)到同一臺服務(wù)器處理嫉拐。七層的負(fù)載均衡婉徘,就是在四層的基礎(chǔ)上(沒有四層是絕對不可能有七層的)咐汞,再考慮應(yīng)用層的特征,比如同一個Web服務(wù)器的負(fù)載均衡几晤,除了根據(jù)VIP加80端口辨別是否需要處理的流量蟹瘾,還可根據(jù)七層的URL掠手、瀏覽器類別惨撇、語言來決定是否要進(jìn)行負(fù)載均衡府寒。舉個例子报腔,如果你的Web服務(wù)器分成兩組纯蛾,一組是中文語言的纵隔,一組是英文語言的捌刮,那么七層負(fù)載均衡就可以當(dāng)用戶來訪問你的域名時,自動辨別用戶語言芦圾,然后選擇對應(yīng)的語言服務(wù)器組進(jìn)行負(fù)載均衡處理俄认。

負(fù)載均衡器通常稱為四層交換機(jī)或七層交換機(jī)眯杏。四層交換機(jī)主要分析IP層及TCP/UDP層,實(shí)現(xiàn)四層流量負(fù)載均衡茫经。七層交換機(jī)除了支持四層負(fù)載均衡以外科平,還有分析應(yīng)用層的信息姜性,如HTTP協(xié)議URI或Cookie信息部念。

負(fù)載均衡分為L4 switch(四層交換),即在OSI第4層工作妓湘,就是TCP層啦乌询。此種Load Balance不理解應(yīng)用協(xié)議(如HTTP/FTP/MySQL等等)妹田。例子:LVS鹃共,F(xiàn)5霜浴。

另一種叫做L7 switch(七層交換)蓝纲,OSI的最高層税迷,應(yīng)用層。此時类溢,該Load Balancer能理解應(yīng)用協(xié)議露懒。例子:? haproxy懈词,MySQL Proxy。

注意:上面的很多Load Balancer既可以做四層交換纺涤,也可以做七層交換抠忘。

二崎脉、區(qū)別

技術(shù)原理上

 所謂四層負(fù)載均衡囚灼,也就是主要通過報文中的目標(biāo)地址和端口,再加上負(fù)載均衡設(shè)備設(shè)置的服務(wù)器選擇方式阅签,決定最終選擇的內(nèi)部服務(wù)器蝎抽。

以常見的TCP為例,負(fù)載均衡設(shè)備在接收到第一個來自客戶端的SYN 請求時衷戈,即通過上述方式選擇一個最佳的服務(wù)器层坠,并對報文中目標(biāo)IP地址進(jìn)行修改(改為后端服務(wù)器IP)破花,直接轉(zhuǎn)發(fā)給該服務(wù)器疲吸。TCP的連接建立摘悴,即三次握手是客戶端和服務(wù)器直接建立的,負(fù)載均衡設(shè)備只是起到一個類似路由器的轉(zhuǎn)發(fā)動作葱椭。在某些部署情況下孵运,為保證服務(wù)器回包可以正確返回給負(fù)載均衡設(shè)備蔓彩,在轉(zhuǎn)發(fā)報文的同時可能還會對報文原來的源地址進(jìn)行修改赤嚼。

區(qū)別

所謂七層負(fù)載均衡更卒,也稱為“內(nèi)容交換”,也就是主要通過報文中的真正有意義的應(yīng)用層內(nèi)容流济,再加上負(fù)載均衡設(shè)備設(shè)置的服務(wù)器選擇方式绳瘟,決定最終選擇的內(nèi)部服務(wù)器姿骏。

以常見的TCP為例,負(fù)載均衡設(shè)備如果要根據(jù)真正的應(yīng)用層內(nèi)容再選擇服務(wù)器琉苇,只能先代理最終的服務(wù)器和客戶端建立連接(三次握手)后悦施,才可能接受到客戶端發(fā)送的真正應(yīng)用層內(nèi)容的報文抡诞,然后再根據(jù)該報文中的特定字段,再加上負(fù)載均衡設(shè)備設(shè)置的服務(wù)器選擇方式肴熏,決定最終選擇的內(nèi)部服務(wù)器顷窒。負(fù)載均衡設(shè)備在這種情況下鞋吉,更類似于一個代理服務(wù)器坯辩。負(fù)載均衡和前端的客戶端以及后端的服務(wù)器會分別建立TCP連接。所以從這個技術(shù)原理上來看坷檩,七層負(fù)載均衡明顯的對負(fù)載均衡設(shè)備的要求更高改抡,處理七層的能力也必然會低于四層模式的部署方式阿纤。

應(yīng)用場景

七層應(yīng)用負(fù)載的好處欠拾,是使得整個網(wǎng)絡(luò)更智能化。例如訪問一個網(wǎng)站的用戶流量资昧,可以通過七層的方式格带,將對圖片類的請求轉(zhuǎn)發(fā)到特定的圖片服務(wù)器并可以使用緩存技術(shù);將對文字類的請求可以轉(zhuǎn)發(fā)到特定的文字服務(wù)器并可以使用壓縮技術(shù)屈呕。當(dāng)然這只是七層應(yīng)用的一個小案例虎眨,從技術(shù)原理上镶摘,這種方式可以對客戶端的請求和服務(wù)器的響應(yīng)進(jìn)行任意意義上的修改钉稍,極大的提升了應(yīng)用系統(tǒng)在網(wǎng)絡(luò)層的靈活性贡未。很多在后臺蒙袍,例如Nginx或者Apache上部署的功能可以前移到負(fù)載均衡設(shè)備上害幅,例如客戶請求中的Header重寫,服務(wù)器響應(yīng)中的關(guān)鍵字過濾或者內(nèi)容插入等功能狠怨。

另外一個常常被提到功能就是安全性佣赖。網(wǎng)絡(luò)中最常見的SYN Flood攻擊憎蛤,即黑客控制眾多源客戶端纪吮,使用虛假IP地址對同一目標(biāo)發(fā)送SYN攻擊碾盟,通常這種攻擊會大量發(fā)送SYN報文巷疼,耗盡服務(wù)器上的相關(guān)資源灵奖,以達(dá)到Denial of Service(DoS)的目的瓷患。從技術(shù)原理上也可以看出擅编,四層模式下這些SYN攻擊都會被轉(zhuǎn)發(fā)到后端的服務(wù)器上箫踩;而七層模式下這些SYN攻擊自然在負(fù)載均衡設(shè)備上就截止境钟,不會影響后臺服務(wù)器的正常運(yùn)營。另外負(fù)載均衡設(shè)備可以在七層層面設(shè)定多種策略洞渔,過濾特定報文磁椒,例如SQL Injection等應(yīng)用層面的特定攻擊手段玫芦,從應(yīng)用層面進(jìn)一步提高系統(tǒng)整體安全桥帆。

現(xiàn)在的7層負(fù)載均衡老虫,主要還是著重于應(yīng)用HTTP協(xié)議张遭,所以其應(yīng)用范圍主要是眾多的網(wǎng)站或者內(nèi)部信息平臺等基于B/S開發(fā)的系統(tǒng)。 4層負(fù)載均衡則對應(yīng)其他TCP應(yīng)用缔恳,例如基于C/S開發(fā)的ERP等系統(tǒng)。

三洁闰、Nginx歉甚、LVS及HAProxy負(fù)載均衡軟件的優(yōu)缺點(diǎn)

負(fù)載均衡 (Load Balancing) 建立在現(xiàn)有網(wǎng)絡(luò)結(jié)構(gòu)之上,它提供了一種廉價有效透明的方法擴(kuò)展網(wǎng)絡(luò)設(shè)備和服務(wù)器的帶寬扑眉、增加吞吐量纸泄、加強(qiáng)網(wǎng)絡(luò)數(shù)據(jù)處理能力赖钞,同時能夠提高網(wǎng)絡(luò)的靈活性和可用性。

Nginx/LVS/HAProxy是目前使用最廣泛的三種負(fù)載均衡軟件聘裁。

一般對負(fù)載均衡的使用是隨著網(wǎng)站規(guī)模的提升根據(jù)不同的階段來使用不同的技術(shù)。具體的應(yīng)用需求還得具體分析衡便,如果是中小型的Web應(yīng)用献起,比如日PV小于1000萬,用Nginx就完全可以了镣陕;如果機(jī)器不少谴餐,可以用DNS輪詢,LVS所耗費(fèi)的機(jī)器還是比較多的呆抑;大型網(wǎng)站或重要的服務(wù)岂嗓,且服務(wù)器比較多時,可以考慮用LVS鹊碍。

一種是通過硬件來進(jìn)行摄闸,常見的硬件有比較昂貴的F5和Array等商用的負(fù)載均衡器,它的優(yōu)點(diǎn)就是有專業(yè)的維護(hù)團(tuán)隊來對這些服務(wù)進(jìn)行維護(hù)妹萨、缺點(diǎn)就是花銷太大,所以對于規(guī)模較小的網(wǎng)絡(luò)服務(wù)來說暫時還沒有需要使用炫欺;另外一種就是類似于Nginx/LVS/HAProxy的基于 Linux的開源免費(fèi)的負(fù)載均衡軟件乎完,這些都是通過軟件級別來實(shí)現(xiàn),所以費(fèi)用非常低廉品洛。

目前關(guān)于網(wǎng)站架構(gòu)一般比較合理流行的架構(gòu)方案:Web前端采用Nginx/HAProxy+ Keepalived作負(fù)載均衡器树姨;后端采用 MySQL數(shù)據(jù)庫一主多從和讀寫分離,采用LVS+Keepalived的架構(gòu)桥状。當(dāng)然要根據(jù)項(xiàng)目具體需求制定方案帽揪。

下面說說各自的特點(diǎn)和適用場合。

Nginx的優(yōu)點(diǎn)是:

工作在網(wǎng)絡(luò)的7層之上辅斟,可以針對http應(yīng)用做一些分流的策略转晰,比如針對域名、目錄結(jié)構(gòu)士飒,它的正則規(guī)則比HAProxy更為強(qiáng)大和靈活查邢,這也是它目前廣泛流行的主要原因之一,Nginx單憑這點(diǎn)可利用的場合就遠(yuǎn)多于LVS了酵幕。

Nginx對網(wǎng)絡(luò)穩(wěn)定性的依賴非常小扰藕,理論上能ping通就就能進(jìn)行負(fù)載功能,這個也是它的優(yōu)勢之一芳撒;相反LVS對網(wǎng)絡(luò)穩(wěn)定性依賴比較大邓深。

Nginx安裝和配置比較簡單未桥,測試起來比較方便,它基本能把錯誤用日志打印出來芥备。LVS的配置冬耿、測試就要花比較長的時間了,LVS對網(wǎng)絡(luò)依賴比較大门躯。

可以承擔(dān)高負(fù)載壓力且穩(wěn)定淆党,在硬件不差的情況下一般能支撐幾萬次的并發(fā)量,負(fù)載度比LVS相對小些讶凉。

Nginx可以通過端口檢測到服務(wù)器內(nèi)部的故障染乌,比如根據(jù)服務(wù)器處理網(wǎng)頁返回的狀態(tài)碼、超時等等懂讯,并且會把返回錯誤的請求重新提交到另一個節(jié)點(diǎn)荷憋,不過其中缺點(diǎn)就是不支持url來檢測。比如用戶正在上傳一個文件褐望,而處理該上傳的節(jié)點(diǎn)剛好在上傳過程中出現(xiàn)故障勒庄,Nginx會把上傳切到另一臺服務(wù)器重新處理,而LVS就直接斷掉了瘫里,如果是上傳一個很大的文件或者很重要的文件的話实蔽,用戶可能會因此而不滿。

Nginx不僅僅是一款優(yōu)秀的負(fù)載均衡器/反向代理軟件谨读,它同時也是功能強(qiáng)大的Web應(yīng)用服務(wù)器局装。LNMP也是近幾年非常流行的web架構(gòu),在高流量的環(huán)境中穩(wěn)定性也很好劳殖。

Nginx現(xiàn)在作為Web反向加速緩存越來越成熟了铐尚,速度比傳統(tǒng)的Squid服務(wù)器更快,可以考慮用其作為反向代理加速器哆姻。

Nginx可作為中層反向代理使用宣增,這一層面Nginx基本上無對手,唯一可以對比Nginx的就只有 lighttpd了矛缨,不過 lighttpd目前還沒有做到Nginx完全的功能爹脾,配置也不那么清晰易讀,社區(qū)資料也遠(yuǎn)遠(yuǎn)沒Nginx活躍箕昭。

Nginx也可作為靜態(tài)網(wǎng)頁和圖片服務(wù)器誉简,這方面的性能也無對手。還有Nginx社區(qū)非趁斯悖活躍闷串,第三方模塊也很多。

Nginx的缺點(diǎn)是:

Nginx僅能支持http筋量、https和Email協(xié)議烹吵,這樣就在適用范圍上面小些碉熄,這個是它的缺點(diǎn)。

對后端服務(wù)器的健康檢查肋拔,只支持通過端口來檢測锈津,不支持通過url來檢測。不支持Session的直接保持凉蜂,但能通過ip_hash來解決琼梆。

LVS:使用Linux內(nèi)核集群實(shí)現(xiàn)一個高性能、高可用的負(fù)載均衡服務(wù)器窿吩,它具有很好的可伸縮性(Scalability)茎杂、可靠性(Reliability)和可管理性(Manageability)。

LVS的優(yōu)點(diǎn)是:

抗負(fù)載能力強(qiáng)纫雁、是工作在網(wǎng)絡(luò)4層之上僅作分發(fā)之用煌往,沒有流量的產(chǎn)生,這個特點(diǎn)也決定了它在負(fù)載均衡軟件里的性能最強(qiáng)的轧邪,對內(nèi)存和cpu資源消耗比較低刽脖。

配置性比較低,這是一個缺點(diǎn)也是一個優(yōu)點(diǎn)忌愚,因?yàn)闆]有可太多配置的東西曲管,所以并不需要太多接觸,大大減少了人為出錯的幾率硕糊。

工作穩(wěn)定院水,因?yàn)槠浔旧砜关?fù)載能力很強(qiáng),自身有完整的雙機(jī)熱備方案癌幕,如LVS+Keepalived。

無流量昧穿,LVS只分發(fā)請求勺远,而流量并不從它本身出去,這點(diǎn)保證了均衡器IO的性能不會受到大流量的影響时鸵。

應(yīng)用范圍比較廣胶逢,因?yàn)長VS工作在4層,所以它幾乎可以對所有應(yīng)用做負(fù)載均衡饰潜,包括http初坠、數(shù)據(jù)庫、在線聊天室等等彭雾。

LVS的缺點(diǎn)是:

軟件本身不支持正則表達(dá)式處理碟刺,不能做動靜分離;而現(xiàn)在許多網(wǎng)站在這方面都有較強(qiáng)的需求薯酝,這個是Nginx/HAProxy+Keepalived的優(yōu)勢所在半沽。

如果是網(wǎng)站應(yīng)用比較龐大的話爽柒,LVS/DR+Keepalived實(shí)施起來就比較復(fù)雜了,特別后面有 Windows Server的機(jī)器的話者填,如果實(shí)施及配置還有維護(hù)過程就比較復(fù)雜了浩村,相對而言,Nginx/HAProxy+Keepalived就簡單多了占哟。

HAProxy的特點(diǎn)是:

HAProxy也是支持虛擬主機(jī)的心墅。

HAProxy的優(yōu)點(diǎn)能夠補(bǔ)充Nginx的一些缺點(diǎn),比如支持Session的保持榨乎,Cookie的引導(dǎo)怎燥;同時支持通過獲取指定的url來檢測后端服務(wù)器的狀態(tài)。

HAProxy跟LVS類似谬哀,本身就只是一款負(fù)載均衡軟件刺覆;單純從效率上來講HAProxy會比Nginx有更出色的負(fù)載均衡速度,在并發(fā)處理上也是優(yōu)于Nginx的史煎。

HAProxy支持TCP協(xié)議的負(fù)載均衡轉(zhuǎn)發(fā)谦屑,可以對MySQL讀進(jìn)行負(fù)載均衡,對后端的MySQL節(jié)點(diǎn)進(jìn)行檢測和負(fù)載均衡篇梭,大家可以用LVS+Keepalived對MySQL主從做負(fù)載均衡氢橙。

HAProxy負(fù)載均衡策略非常多,HAProxy的負(fù)載均衡算法現(xiàn)在具體有如下8種:

① roundrobin恬偷,表示簡單的輪詢悍手,這個不多說,這個是負(fù)載均衡基本都具備的袍患;

② static-rr坦康,表示根據(jù)權(quán)重,建議關(guān)注诡延;

③ leastconn滞欠,表示最少連接者先處理,建議關(guān)注肆良;

④ source筛璧,表示根據(jù)請求源IP,這個跟Nginx的IP_hash機(jī)制類似惹恃,我們用其作為解決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請求榆鼠。

Nginx和LVS對比的總結(jié):

Nginx工作在網(wǎng)絡(luò)的7層纲爸,所以它可以針對http應(yīng)用本身來做分流策略,比如針對域名妆够、目錄結(jié)構(gòu)等识啦,相比之下LVS并不具備這樣的功能,所以Nginx單憑這點(diǎn)可利用的場合就遠(yuǎn)多于LVS了神妹;但Nginx有用的這些功能使其可調(diào)整度要高于LVS颓哮,所以經(jīng)常要去觸碰觸碰,觸碰多了鸵荠,人為出問題的幾率也就會大冕茅。

Nginx對網(wǎng)絡(luò)穩(wěn)定性的依賴較小,理論上只要ping得通蛹找,網(wǎng)頁訪問正常姨伤,Nginx就能連得通,這是Nginx的一大優(yōu)勢庸疾!Nginx同時還能區(qū)分內(nèi)外網(wǎng)乍楚,如果是同時擁有內(nèi)外網(wǎng)的節(jié)點(diǎn),就相當(dāng)于單機(jī)擁有了備份線路届慈;LVS就比較依賴于網(wǎng)絡(luò)環(huán)境徒溪,目前來看服務(wù)器在同一網(wǎng)段內(nèi)并且LVS使用direct方式分流,效果較能得到保證金顿。另外注意臊泌,LVS需要向托管商至少申請多一個ip來做Visual IP,貌似是不能用本身的IP來做VIP的揍拆。要做好LVS管理員渠概,確實(shí)得跟進(jìn)學(xué)習(xí)很多有關(guān)網(wǎng)絡(luò)通信方面的知識,就不再是一個HTTP那么簡單了礁凡。

Nginx安裝和配置比較簡單高氮,測試起來也很方便慧妄,因?yàn)樗灸馨彦e誤用日志打印出來顷牌。LVS的安裝和配置、測試就要花比較長的時間了塞淹;LVS對網(wǎng)絡(luò)依賴比較大窟蓝,很多時候不能配置成功都是因?yàn)榫W(wǎng)絡(luò)問題而不是配置問題,出了問題要解決也相應(yīng)的會麻煩得多。

Nginx也同樣能承受很高負(fù)載且穩(wěn)定运挫,但負(fù)載度和穩(wěn)定度差LVS還有幾個等級:Nginx處理所有流量所以受限于機(jī)器IO和配置状共;本身的bug也還是難以避免的。

Nginx可以檢測到服務(wù)器內(nèi)部的故障谁帕,比如根據(jù)服務(wù)器處理網(wǎng)頁返回的狀態(tài)碼峡继、超時等等,并且會把返回錯誤的請求重新提交到另一個節(jié)點(diǎn)匈挖。目前LVS中 ldirectd也能支持針對服務(wù)器內(nèi)部的情況來監(jiān)控碾牌,但LVS的原理使其不能重發(fā)請求。比如用戶正在上傳一個文件儡循,而處理該上傳的節(jié)點(diǎn)剛好在上傳過程中出現(xiàn)故障舶吗,Nginx會把上傳切到另一臺服務(wù)器重新處理,而LVS就直接斷掉了择膝,如果是上傳一個很大的文件或者很重要的文件的話誓琼,用戶可能會因此而惱火。

Nginx對請求的異步處理可以幫助節(jié)點(diǎn)服務(wù)器減輕負(fù)載肴捉,假如使用 apache直接對外服務(wù)腹侣,那么出現(xiàn)很多的窄帶鏈接時apache服務(wù)器將會占用大 量內(nèi)存而不能釋放,使用多一個Nginx做apache代理的話每庆,這些窄帶鏈接會被Nginx擋住筐带,apache上就不會堆積過多的請求,這樣就減少了相當(dāng)多的資源占用缤灵。這點(diǎn)使用squid也有相同的作用伦籍,即使squid本身配置為不緩存,對apache還是有很大幫助的腮出。

Nginx能支持http帖鸦、https和email(email的功能比較少用),LVS所支持的應(yīng)用在這點(diǎn)上會比Nginx更多胚嘲。在使用上作儿,一般最前端所采取的策略應(yīng)是LVS,也就是DNS的指向應(yīng)為LVS均衡器馋劈,LVS的優(yōu)點(diǎn)令它非常適合做這個任務(wù)攻锰。重要的ip地址,最好交由LVS托管妓雾,比如數(shù)據(jù)庫的 ip娶吞、webservice服務(wù)器的ip等等,這些ip地址隨著時間推移械姻,使用面會越來越大妒蛇,如果更換ip則故障會接踵而至。所以將這些重要ip交給 LVS托管是最為穩(wěn)妥的,這樣做的唯一缺點(diǎn)是需要的VIP數(shù)量會比較多绣夺。Nginx可作為LVS節(jié)點(diǎn)機(jī)器使用吏奸,一是可以利用Nginx的功能,二是可以利用Nginx的性能陶耍。當(dāng)然這一層面也可以直接使用squid奋蔚,squid的功能方面就比Nginx弱不少了,性能上也有所遜色于Nginx烈钞。Nginx也可作為中層代理使用旺拉,這一層面Nginx基本上無對手,唯一可以撼動Nginx的就只有l(wèi)ighttpd了棵磷,不過lighttpd目前還沒有能做到 Nginx完全的功能蛾狗,配置也不那么清晰易讀。另外仪媒,中層代理的IP也是重要的沉桌,所以中層代理也擁有一個VIP和LVS是最完美的方案了。具體的應(yīng)用還得具體分析算吩,如果是比較小的網(wǎng)站(日PV小于1000萬)留凭,用Nginx就完全可以了,如果機(jī)器也不少偎巢,可以用DNS輪詢蔼夜,LVS所耗費(fèi)的機(jī)器還是比較多的;大型網(wǎng)站或者重要的服務(wù)压昼,機(jī)器不發(fā)愁的時候求冷,要多多考慮利用LVS。

現(xiàn)在對網(wǎng)絡(luò)負(fù)載均衡的使用是隨著網(wǎng)站規(guī)模的提升根據(jù)不同的階段來使用不同的技術(shù):

第一階段:利用Nginx或HAProxy進(jìn)行單點(diǎn)的負(fù)載均衡窍霞,這一階段服務(wù)器規(guī)模剛脫離開單服務(wù)器匠题、單數(shù)據(jù)庫的模式,需要一定的負(fù)載均衡但金,但是仍然規(guī)模較小沒有專業(yè)的維護(hù)團(tuán)隊來進(jìn)行維護(hù)韭山,也沒有需要進(jìn)行大規(guī)模的網(wǎng)站部署。這樣利用Nginx或HAproxy就是第一選擇冷溃,此時這些東西上手快钱磅, 配置容易,在七層之上利用HTTP協(xié)議就可以似枕。這時是第一選擇盖淡。

第二階段:隨著網(wǎng)絡(luò)服務(wù)進(jìn)一步擴(kuò)大,這時單點(diǎn)的Nginx已經(jīng)不能滿足菠净,這時使用LVS或者商用Array就是首要選擇禁舷,Nginx此時就作為LVS或者Array的節(jié)點(diǎn)來使用,具體LVS或Array的是選擇是根據(jù)公司規(guī)模和預(yù)算來選擇毅往,Array的應(yīng)用交付功能非常強(qiáng)大牵咙,本人在某項(xiàng)目中使用過,性價比也遠(yuǎn)高于F5攀唯,商用首選洁桌,但是一般來說這階段相關(guān)人才跟不上業(yè)務(wù)的提升,所以購買商業(yè)負(fù)載均衡已經(jīng)成為了必經(jīng)之路侯嘀。

第三階段:這時網(wǎng)絡(luò)服務(wù)已經(jīng)成為主流產(chǎn)品另凌,此時隨著公司知名度也進(jìn)一步擴(kuò)展,相關(guān)人才的能力以及數(shù)量也隨之提升戒幔,這時無論從開發(fā)適合自身產(chǎn)品的定制吠谢,以及降低成本來講開源的LVS,已經(jīng)成為首選诗茎,這時LVS會成為主流工坊。

最終形成比較理想的基本架構(gòu)為:Array/LVS — Nginx/Haproxy — Squid/Varnish — AppServer。

小禮物走一走敢订,來簡書關(guān)注我

作者:薛晨

鏈接:http://www.reibang.com/p/fa937b8e6712

來源:簡書

簡書著作權(quán)歸作者所有王污,任何形式的轉(zhuǎn)載都請聯(lián)系作者獲得授權(quán)并注明出處。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末楚午,一起剝皮案震驚了整個濱河市昭齐,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌矾柜,老刑警劉巖阱驾,帶你破解...
    沈念sama閱讀 212,884評論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異怪蔑,居然都是意外死亡啊易,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,755評論 3 385
  • 文/潘曉璐 我一進(jìn)店門饮睬,熙熙樓的掌柜王于貴愁眉苦臉地迎上來租谈,“玉大人,你說我怎么就攤上這事捆愁「钊ィ” “怎么了?”我有些...
    開封第一講書人閱讀 158,369評論 0 348
  • 文/不壞的土叔 我叫張陵昼丑,是天一觀的道長呻逆。 經(jīng)常有香客問我,道長菩帝,這世上最難降的妖魔是什么咖城? 我笑而不...
    開封第一講書人閱讀 56,799評論 1 285
  • 正文 為了忘掉前任茬腿,我火速辦了婚禮,結(jié)果婚禮上宜雀,老公的妹妹穿的比我還像新娘切平。我一直安慰自己,他們只是感情好辐董,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,910評論 6 386
  • 文/花漫 我一把揭開白布悴品。 她就那樣靜靜地躺著,像睡著了一般简烘。 火紅的嫁衣襯著肌膚如雪苔严。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 50,096評論 1 291
  • 那天孤澎,我揣著相機(jī)與錄音届氢,去河邊找鬼。 笑死覆旭,一個胖子當(dāng)著我的面吹牛悼沈,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播姐扮,決...
    沈念sama閱讀 39,159評論 3 411
  • 文/蒼蘭香墨 我猛地睜開眼絮供,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了茶敏?” 一聲冷哼從身側(cè)響起壤靶,我...
    開封第一講書人閱讀 37,917評論 0 268
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎惊搏,沒想到半個月后贮乳,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,360評論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡恬惯,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,673評論 2 327
  • 正文 我和宋清朗相戀三年向拆,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片酪耳。...
    茶點(diǎn)故事閱讀 38,814評論 1 341
  • 序言:一個原本活蹦亂跳的男人離奇死亡浓恳,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出碗暗,到底是詐尸還是另有隱情颈将,我是刑警寧澤,帶...
    沈念sama閱讀 34,509評論 4 334
  • 正文 年R本政府宣布言疗,位于F島的核電站晴圾,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏噪奄。R本人自食惡果不足惜死姚,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 40,156評論 3 317
  • 文/蒙蒙 一人乓、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧都毒,春花似錦色罚、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,882評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽手负。三九已至涤垫,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間竟终,已是汗流浹背蝠猬。 一陣腳步聲響...
    開封第一講書人閱讀 32,123評論 1 267
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留统捶,地道東北人榆芦。 一個月前我還...
    沈念sama閱讀 46,641評論 2 362
  • 正文 我出身青樓,卻偏偏與公主長得像喘鸟,于是被迫代替她去往敵國和親匆绣。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,728評論 2 351

推薦閱讀更多精彩內(nèi)容