HTTP代理及反向代理

 出於安全考慮,局域網內的機器訪問訪問牆外的網站藉助於代理服務器進行,若是把局域網外Internet想象成一個巨大的資源庫,局域網內的用戶要訪問這個庫裏的資源必須統一經過代理服務器進行。反過來,若是局域網向Internet提供資源,讓Internet上的用戶訪問局域網內的資源也能夠設置成一個代理服務器,只不過與咱們經常使用的代理服務器方向正好相反,因此叫反向代理(Reverse Proxy)。 

一、代理可分爲三種: 標準的代理緩衝服務器、透明代理緩衝服務器、反向代理緩衝服務器 
(1)標準的代理緩衝服務器 
  這種方式須要在瀏覽器配置中指明代理服務器的IP地址和端口號。瀏覽器每次都把請求送給代理服務器處理。代理服務器能夠有緩存的功能:它根據請求肯定是否鏈接到遠程web服務器獲取數據,若是在本地緩衝區有目標數據,則直接將緩存數據傳給用戶便可,若是沒有的話則先取回數據,先在本地保存一份緩衝,而後將數據發給客戶端瀏覽器。 
(2)透明代理緩衝服務器 
  透明代理緩衝服務器和標準代理服務器的功能徹底相同,可是代理操做對客戶端的瀏覽器是透明的(即不需指明代理服務器的IP和端口號)。透明代理服務器阻斷網絡通訊,而且過濾出訪問外部的HTTP(80端口)流量。若是客戶端的請求在本地有緩衝則將緩衝的數據直接發給用戶,若是在本地沒有緩衝則向遠程web服務器發出請求,其他操做和標準的代理服務器徹底相同。對於Linux操做系統來講,透明代理使用Iptables或者Ipchains實現。由於不須要對瀏覽器做任何設置,因此透明代理對於ISP(Internet服務器提供商)特別有用。 
(3)反向代理緩衝服務器 
  反向代理是和前兩種代理徹底不一樣的一種代理服務,使用它能夠下降原始web服務器的負載。反向代理服務器承擔了對原始web服務器的靜態頁面的請求,防止原始服務器過載。它位於本地web服務器和Internet之間,處理全部對web服務器的請求,組織了web服務器和Internet的直接通訊。若是互聯網用戶請求的頁面在代理服務器上有緩衝的話,代理服務器直接將緩衝內容發送給用戶;若是沒有緩衝,則先向web服務器發出請求,取回數據並在本地緩存後再發送給用戶。這種方式經過下降了向web服務器的請求數,從而下降了web服務器的負載。 


二、反向代理有兩種用法: 
(1)一種是爲多個網站的Web服務器提供代理,這些網站的域名都指向反向代理服務器,對這些網站的請求全都發給了反向代理,由反向代理服務器轉發HTTP請求給相應網站的Web服務器。 
(2)一種是爲一個網站的Web服務器集羣提供代理,反向代理做爲負載均衡器決定具體哪一個Web服務器接收請求。 

反向代理老是位於Web服務器的前端,Internet上的用戶對Web服務器的鏈接要先通過反向代理,而後由反向代理決定哪一個Web服務器處理用戶請求,並將請求路由給相應的Web服務器。對靜態內容能夠在反向代理上緩存,這樣就不用再向Web服務器路由了。 

三、除了緩存和負載均衡,反向代理還能提供以下功能: 

(1)安全:反向代理隔離了用戶和Web服務器,用戶很難針對特定的服務器發動攻擊; 
(2)數據加密/SSL加速: 某些Web服務器可能不具備SSL加密功能,可是具備加密功能的反向代理服務器能夠爲Web服務器提供數據加密,並且裝備了SSL加速硬件的反向代理服務器還能爲Web應用提供了高速的加密通道; 前端

(3)壓縮:代理服務器能壓縮通過的數據以節省帶寬 web

轉載自:http://hualong.iteye.com/blog/807336瀏覽器

相關文章
相關標籤/搜索