HTTP代理及反向代理

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

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


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

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

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

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

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

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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章