字體:  

認識正向代理和反向代理

plurk 發表於: 2010-4-02 00:44 來源: ADJ網路控股集團


正向代理和反向代理是forward/reverse proxy的意思,在代理功能上來講,有一點不太一樣。

 

舉個例子:
你要去租房,你找房屋中介找房子,房屋中介找房屋的全權代理人要房子,房屋的全權代理人是由戶主委託的。

 

這裡有四個角色:
你=client
房屋中介=forword proxy
代理人=reverse proxy
戶主=server

 

客戶端訪問網路如果需要指定某個代理服務器為你去獲取內容,那就是正向代理

而服務器隱藏在代理服務器後面,讓代理服務器作為衝鋒陷陣的,那這個代理服務器就是反向代理

 

而squid是一個forword/reverse proxy,兩個功能兼備,一般可以作為區域網路的上網緩存,此時作為正向代理。

一般服務器會讓squid作為前端,那就是充當反向代理,反向代理有很多軟件都可以,比如nginx、lighttpd,但他們兩個一般做不了正向代理。

 

另一個參考資料:

QUOTE:

正向代理是一個位於客戶端和原始服務器(origin server)之間的服務器,為了從原始服務器取得內容,客戶端向代理發送一個請求並指定目標(原始服務器),然後代理向原始服務器轉交請求並將獲得的內容返回給客戶端。

 

客戶端必須要進行一些特別的設置才能使用正向代理。

 

正向代理的典型用途是為在防火牆內的局域網客戶端提供訪問Internet的途徑。正向代理還可以使用緩衝特性(由mod_cache提供)減少網絡使用率。

使用ProxyRequests指令即可啟動正向代理。因為正向代理允許客戶端通過它訪問任意網站並且隱藏客戶端自身,因此你必須採取安全措施以確保僅為經過授權的客戶端提供服務。

 

反向代理正好相反,對於客戶端而言它就像是原始服務器,並且客戶端不需要進行任何特別的設置。客戶端向反向代理的名字空間(name-space)中的內容發送普通請求,接著反向代理將判斷向何處(原始服務器)轉交請求,並將獲得的內容返回給客戶端,就像這些內容原本就是它自己的一樣。

 

反向代理的典型用途是將防火牆後面的服務器提供給Internet用戶訪問。反向代理還可以為後端的多台服務器提供負載平衡,或為後端較慢的服務器提供緩沖服務。

 

另外,還可以啟用高級URL策略和管理技術,從而使處於不同web服務器系統的web頁面同時存在於同一個URL空間下。

 

最新回復

wisdomleo at 2011-6-21 22:14:32
多謝分享