正向代理
- 舉個栗子:客戶端想訪問服務(wù)B盔憨,但是由于一些不可抗力,客戶端不能直接訪問B缨称。但是現(xiàn)在有一個服務(wù)A可以訪問B凝果,而且客戶端又剛好可以訪問A,那么睦尽,客戶端其實可以委托A幫忙訪問B器净,并且將訪問結(jié)果返回。這種情形下当凡,A就是B的正向代理山害。
- 正向代理,也就是傳說中的代理,他的工作原理就像一個跳板纠俭。簡單的說,我是一個用戶,我訪問不了某網(wǎng)站,但是我能訪問一個代理服務(wù)器,這個代理服務(wù)器呢,他能訪問那個我不能訪問的網(wǎng)站浪慌,于是我先連上代理服務(wù)器,告訴他我需要那個無法訪問網(wǎng)站的內(nèi)容冤荆,代理服務(wù)器去取回來,然后返回給我。
- 從網(wǎng)站的角度,只在代理服務(wù)器來取內(nèi)容的時候有一次記錄权纤。有時候并不知道是用戶的請求,也隱藏了用戶的資料,這取決于代理告不告訴網(wǎng)站钓简。
- 結(jié)論就是 正向代理 是一個位于客戶端和原始服務(wù)器(origin server)之間的服務(wù)器,為了從原始服務(wù)器取得內(nèi)容妖碉,客戶端向代理發(fā)送一個請求并指定目標(biāo)(原始服務(wù)器)涌庭,然后代理向原始服務(wù)器轉(zhuǎn)交請求并將獲得的內(nèi)容返回給客戶端∨芬耍客戶端必須要進行一些特別的設(shè)置才能使用正向代理坐榆。
- VPN就可以看做是一個正向代理。但是VPN本質(zhì)上不是代理冗茸。
反向代理
- 反向代理是針對于正向代理而言的席镀。
- 舉個栗子:客戶端向服務(wù)A請求image資源,服務(wù)A順利返回了image資源夏漱。但是實際上豪诲,可能服務(wù)A本身是沒有資源,服務(wù)A為了獲取image資源挂绰,向真正保有image資源的服務(wù)B發(fā)起了請求屎篱,同時將請求到的資源返回給客戶端】伲客戶端本身是不需要知道后面A請求B的這個過程的交播,這種情形下,A就是B的反向代理践付。
- 對于客戶端秦士,反向代理服務(wù)器就像是原始服務(wù)器,并且客戶端不需要進行任何特別的設(shè)置永高。
- 客戶端向反向代理的命名空間(name-space)中的內(nèi)容發(fā)送普通請求隧土,接著反向代理將判斷向何處(原始服務(wù)器)轉(zhuǎn)交請求,并將獲得的內(nèi)容返回給客戶端命爬,就像這些內(nèi)容 原本就是它自己的一樣曹傀。
cdn、nginx都可以看做是常見的反向代理饲宛。 - nginx之所以可以做負(fù)載均衡皆愉,本質(zhì)上也是反向代理,反向代理的時候可以配置多個源服務(wù)器,而且在這個配置過程中還可以設(shè)置緩存亥啦、過期時間、負(fù)載均衡策略等练链。
- 當(dāng)然翔脱,nginx處理反向代理,還可以做限流等其他媒鼓、靜態(tài)資源管理等其他用途届吁。
從用途上來講
- 正向代理的典型用途是為在防火墻內(nèi)的局域網(wǎng)客戶端提供訪問Internet的途徑。正向代理還可以使用緩存特性減少網(wǎng)絡(luò)使用率绿鸣。
- 反向代理的典型用途是將 防火墻后面的服務(wù)器提供給Internet用戶訪問疚沐。反向代理還可以為后端的多臺服務(wù)器提供負(fù)載平衡,或為后端較慢的服務(wù)器提供緩存服務(wù)潮模。
- 反向代理還可以啟用高級URL策略和管理技術(shù)亮蛔,從而使處于不同web服務(wù)器系統(tǒng)的web頁面同時存在于同一個URL空間下。
從安全性上來講
- 正向代理允許客戶端通過它訪問任意網(wǎng)站并且隱藏客戶端自身擎厢,因此你必須采取安全措施以確保僅為經(jīng)過授權(quán)的客戶端提供服務(wù)究流。
- 反向代理對外都是透明的,訪問者并不知道自己訪問的是一個代理动遭。類似于芬探,客戶端以為自己訪問的是直接服務(wù),但是實際上可能是一個反向代理服務(wù)厘惦。
本文部分內(nèi)容摘錄自:http://blog.csdn.net/m13666368773/article/details/8060481