初步了解代理和負(fù)載均衡
帶著問題閱讀
1、什么是代理,代理有什么好處
2、正向代理和負(fù)向代理有什么區(qū)別
3、反向代理和負(fù)載均衡有什么關(guān)系
4、四層負(fù)載均衡和七層有什么區(qū)別
代理
代理,通俗來說好比是中介的角色,比如在生活中我們處理法律問題、房產(chǎn)交易都會請專業(yè)人士代為處理。從網(wǎng)絡(luò)角度講,就是為事務(wù)參與雙方提供連接通道的第三方網(wǎng)絡(luò)服務(wù)器。
在網(wǎng)絡(luò)場景中,根據(jù)被代理的角色和作用劃分,代理可分為正向代理和反向代理。
正向代理
正向代理是指對客戶端提供的代理服務(wù),在客戶端無法直接訪問服務(wù)端的情況下,通過配置代理服務(wù)器的方式訪問服務(wù)端。
在整個過程中,客戶端請求首先發(fā)送到代理服務(wù)器,代理服務(wù)器再將請求發(fā)送到服務(wù)端后將結(jié)果返回給客戶端。從服務(wù)端角度來看,認(rèn)為代理服務(wù)器才客戶端,因此正向代理即代理客戶端與服務(wù)端進(jìn)行交互。比如生活中我們通過代購去購買海外商品,代購就是我們的正向代理。
正向代理通常有以下應(yīng)用場景:
- 提供網(wǎng)絡(luò)通道:解決客戶端由于防火墻或網(wǎng)絡(luò)限制無法訪問服務(wù)端的問題,如訪問google等國外網(wǎng)站。
- 隱藏客戶端身份:服務(wù)端只感知代理服務(wù)器,無法獲取真實客戶端,如黑客控制肉雞。
反向代理
反向代理是指對服務(wù)端提供的代理服務(wù),通常出于安全考慮,真正的服務(wù)端只有內(nèi)網(wǎng)網(wǎng)絡(luò),無法直接提供對外服務(wù),為此需要設(shè)置反向代理服務(wù)器,由代理服務(wù)器接收外網(wǎng)請求,然后再轉(zhuǎn)發(fā)到內(nèi)部服務(wù)器。從客戶端角度看,代理服務(wù)器是提供服務(wù)的服務(wù)端,因此反向代理即代理服務(wù)端與客戶端交互。比如租房遇到的二房東,我們簽合同也是與二房東簽訂,但實際提供住房的是房主。
反向代理通常有以下應(yīng)用:
- 提供對外服務(wù):代理服務(wù)器暴露公網(wǎng)地址,接收請求并轉(zhuǎn)發(fā)到內(nèi)網(wǎng)服務(wù)器。
- 負(fù)載均衡:根據(jù)預(yù)設(shè)策略將請求分發(fā)到多臺服務(wù)器。
- 提供安全保障:作為服務(wù)端防火墻,避免服務(wù)端遭受網(wǎng)絡(luò)攻擊。
- 提高訪問速度:基于網(wǎng)絡(luò)位置設(shè)置就近代理服務(wù)器,提高資源獲取速度,如CDN服務(wù)器。
區(qū)別
- 正向代理代理客戶端,服務(wù)端認(rèn)為請求來自代理服務(wù)器;反向代理代理服務(wù)端,客戶端認(rèn)為提供服務(wù)的是代理服務(wù)器。
- 正向代理通常由客戶端架設(shè),與客戶端同處一個局域網(wǎng);反向代理由服務(wù)端架設(shè),與服務(wù)端同處一個局域網(wǎng)。
- 正向代理通常解決訪問限制的問題,反向代理通常解決對外服務(wù)和負(fù)載均衡的問題。
負(fù)載均衡
負(fù)載均衡介紹
負(fù)載均衡是將負(fù)載(工作任務(wù),訪問請求)進(jìn)行平衡、分?jǐn)偟蕉鄠€操作單元(服務(wù)器,組件)上進(jìn)行執(zhí)行。是解決高性能,單點故障(高可用),擴展性(水平伸縮)的終極解決方案。
負(fù)載均衡既有基于軟件的實現(xiàn)方案,也有基于硬件的實現(xiàn)方案。在軟件方案中,又主要有:
- 基于DNS的負(fù)載均衡
在DNS服務(wù)器中,可以為多個不同的地址配置相同的名字,最終查詢這個名字的客戶機將在解析這個名字時得到其中一個地址,所以這種代理方式是通過DNS服務(wù)中的隨機名字解析域名和IP來實現(xiàn)負(fù)載均衡。
- 反向代理負(fù)載均衡
通常的反向代理技術(shù),支持為同一服務(wù)配置多個后端服務(wù)器地址,以及設(shè)定相應(yīng)的輪詢策略。請求到達(dá)反向代理服務(wù)器后,代理通過既定的輪詢策略轉(zhuǎn)發(fā)請求到具體服務(wù)器,實現(xiàn)負(fù)載均衡,如Nginx的七層配置形式。
- 基于NAT的負(fù)載均衡
該技術(shù)通過一個地址轉(zhuǎn)換網(wǎng)關(guān)將每個客戶端連接轉(zhuǎn)換為不同的內(nèi)部服務(wù)器地址,因此客戶端就各自與自己轉(zhuǎn)換得到的地址上的服務(wù)器進(jìn)行通信,從而達(dá)到負(fù)載均衡的目的,如LVS和Nginx的四層配置形式。
網(wǎng)絡(luò)模型和負(fù)載均衡
參照OSI標(biāo)準(zhǔn)網(wǎng)絡(luò)模型定義,負(fù)載均衡有二、三、四、七層四種負(fù)載均衡方式,對應(yīng)到TCP網(wǎng)絡(luò)模型中,即數(shù)據(jù)鏈路層負(fù)載均衡、網(wǎng)絡(luò)層負(fù)載均衡、傳輸層負(fù)載均衡及應(yīng)用層負(fù)載均衡,實際應(yīng)用中通常采用四層負(fù)載均衡和七層負(fù)載均衡。
- 四層負(fù)載均衡(IP+端口)
四層負(fù)載均衡是IP+端口的實現(xiàn),以TCP協(xié)議為例,四層負(fù)載只需解析TCP報文頭部,按照負(fù)載均衡算法選擇相應(yīng)服務(wù)后端,將報文目的地址和端口修改為真實后端服務(wù)器地址和端口,并轉(zhuǎn)發(fā)請求到對應(yīng)后端服務(wù)器。因此在四層負(fù)載情況下,負(fù)載均衡起到類似路由轉(zhuǎn)發(fā)的效果,TCP連接的建立是客戶端和服務(wù)端直接建立的。
四層負(fù)載常用軟件有:
LVS(常用,穩(wěn)定性最好)
Nginx(需要額外編譯stream模塊)
HaProxy
- 七層負(fù)載均衡(應(yīng)用層協(xié)議如HTTP)
七層負(fù)載也稱為內(nèi)容交換,通常與具體應(yīng)用層協(xié)議關(guān)聯(lián),根據(jù)客戶端發(fā)送請求內(nèi)容選擇服務(wù)端進(jìn)行負(fù)載轉(zhuǎn)發(fā),如Nginx基于請求URL配置轉(zhuǎn)發(fā)。七層負(fù)載情況下,負(fù)載均衡與反向代理類似,客戶端和服務(wù)端分別與負(fù)載均衡器建立連接,因此效率要低于四層負(fù)載。
七層負(fù)載常用軟件有:
- HaProxy
- Nginx
- Apache(較少使用)
負(fù)載均衡和反向代理
負(fù)載均衡與反向代理是兩個概念,由于其網(wǎng)絡(luò)架構(gòu)形式類似(都用于接入服務(wù)端),帶來一定程度的混淆。
負(fù)載均衡的核心目標(biāo)在于如何將請求均衡的分發(fā)到多個服務(wù)端;反向代理的核心目標(biāo)在于隱藏服務(wù)端內(nèi)部地址并為服務(wù)端提供外部訪問方式。出于高可靠機制的考慮,反向代理通常也會為同一服務(wù)注冊多個后端地址,因此如Nginx同時提供了反向代理和負(fù)載均衡的能力,這也是造成概念混淆的原因。
通常來講經(jīng)過反向代理,真實服務(wù)端對客戶端不可見,代理即客戶端認(rèn)為的服務(wù)端。相較負(fù)載均衡,七層負(fù)載的請求轉(zhuǎn)發(fā)與反向代理機制類似,而四層負(fù)載的NAT形式,是將報文目的地址修改為真實服務(wù)后端地址,與反向代理有根本區(qū)別。
到此這篇關(guān)于初步了解代理和負(fù)載均衡的文章就介紹到這了,更多相關(guān)代理和負(fù)載均衡內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
權(quán)限控制之粗粒度與細(xì)粒度概念及實現(xiàn)簡單介紹
這篇文章主要介紹了權(quán)限控制之粗粒度與細(xì)粒度概念及實現(xiàn)簡單介紹,具有一定參考價值,需要的朋友可以了解下。2017-10-10Hbuilder連遠(yuǎn)程接服務(wù)器上傳代碼的圖文教程
下面小編就為大家分享一篇Hbuilder連遠(yuǎn)程接服務(wù)器上傳代碼的圖文教程,具有很好的參考價值,一起跟隨小編過來看看吧,希望對大家有所幫助2017-11-11Unity3D中shader 輪廓描邊效果實現(xiàn)代碼
這篇文章主要介紹了Unity3D中shader 輪廓描邊效果的相關(guān)資料,需要的朋友可以參考下2017-03-03好玩又實用的查看函數(shù)圖像網(wǎng)站Desmos
這個網(wǎng)站的最大優(yōu)點,就是省去了安裝數(shù)學(xué)繪圖軟件或計算軟件的麻煩,只要打開瀏覽器就能使用了??戳私榻B之后,可別忘了把這個好網(wǎng)站加到書簽2021-08-08