淺談HTTP代理中的反向代理!出于安全考慮,局域網中的機器在代理服務器的幫助下訪問一些網站。如果把局域網外的互聯網看作一個巨大的資源池,局域網內的用戶必須通過代理服務器訪問這個池中的資源。另一方面,如果局域網向互聯網提供資源,互聯網上的用戶可以訪問局域網內的資源,也可以設置為代理服務器,這與我們常用的代理服務器正好相反,所以稱為反向代理。
1.代理可以分為三種:標準代理緩沖服務器、透明代理緩沖服務器和反向代理緩沖服務器。
(1)標準代理緩沖服務器
該方法需要在瀏覽器配置中指定代理服務器的IP地址和端口號。瀏覽器每次都會將請求發送給代理服務器進行處理。代理服務器可以有緩存的功能:它根據請求決定是否連接遠程web服務器獲取數據。如果本地緩沖區中有目標數據,可以將緩存的數據直接傳輸給用戶;如果沒有,可以先檢索數據,先保存本地緩沖區,然后將數據發送到客戶端瀏覽器。
(2)透明代理緩沖服務器
透明代理緩沖服務器和標準代理服務器的功能完全相同,但是代理操作對客戶端的瀏覽器是透明的(即不需要指定代理服務器的IP和端口號)。透明代理服務器會阻止網絡通信,并過濾掉外部HTTP(端口80)流量。如果客戶端的請求在本地緩沖,緩沖的數據將直接發送給用戶;如果本地沒有緩沖區,請求將被發送到遠程web服務器,其余操作與標準代理服務器完全相同。對于Linux操作系統,透明代理由Iptables或Ipchains實現。透明代理對于ISP(互聯網服務器提供商)尤其有用,因為不需要設置任何瀏覽器。
(3)反向代理緩沖服務器
反向代理是一種完全不同于前兩種代理的代理服務,可以減輕原web服務器的負載。反向代理服務器承擔對原始web服務器的靜態頁面的請求,以防止原始服務器過載。它位于本地web服務器和Internet之間,處理對web服務器的所有請求,并組織web服務器和Internet之間的直接通信。如果互聯網用戶請求的頁面緩存在代理服務器上,代理服務器直接將緩存的內容發送給用戶;如果沒有緩沖區,首先向web服務器發送請求,檢索數據并在本地緩存,然后發送給用戶。這種方法通過減少對web服務器的請求數量來減少web服務器的負載。
2.反向代理有兩種使用方式:
一種是為幾個網站的web服務器提供代理,這些網站的域名都指向反向代理服務器,對這些網站的所有請求都發送到反向代理服務器,反向代理服務器將HTTP請求轉發到相應網站的Web服務器。
另一種是為一個網站的web服務器集群提供代理,反向代理作為負載均衡器來決定哪個Web服務器接收請求。
反向代理總是位于Web服務器的前端。Internet上的用戶必須首先通過反向代理連接到Web服務器,然后反向代理決定哪個Web服務器處理用戶的請求,并將請求路由到相應的Web服務器。靜態內容可以緩存在反向代理上,這樣就不必路由到Web服務器。除了緩存和負載均衡,反向代理還可以提供以下功能:反向代理將用戶與Web服務器隔離,用戶很難對特定服務器發起攻擊;數據加密/SSL加速:部分Web服務器可能不具備SSL加密功能,但具備加密功能的反向代理服務器可以為Web服務器提供數據加密,配備SSL加速硬件的反向代理服務器也可以為Web應用提供高速加密通道;代理服務器可以壓縮傳遞的數據以節省帶寬。