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