1、正向代理(forward)是一個位于客戶端和原始服務器(origin server)之間的服務器,為了從原始服務器取得內(nèi)容,客戶端向代理發(fā)送一個請求并指定目標(原始服務器),然后代理向原始服務器轉(zhuǎn)交請求并將獲得的內(nèi)容返回給客戶端?蛻舳吮仨氁M行一些特別的設置才能使用正向代理。
2、反向代理(reverse proxy)正好相反,對于客戶端而言它就像是原始服務器,并且客戶端不需要進行任何特別的設置。客戶端向反向代理的命名空間(name-space)中的內(nèi)容發(fā)送普通請求,接著反向代理將判斷向何處(原始服務器)轉(zhuǎn)交請求,并將獲得的內(nèi)容返回給客戶端,就像這些內(nèi)容原本就是它自己的一樣。
3、兩者區(qū)別
從用途上來講:正向代理的典型用途是為在防火墻內(nèi)的局域網(wǎng)客戶端提供訪問Internet的途徑,正向代理還可以使用緩沖特性減少網(wǎng)絡使用率。反向代理的典型用途是將防火墻后面的服務器提供給Internet用戶訪問,反向代理還可以為后端的多臺服務器提供負載平衡,或為后端較慢的服務器提供緩沖服務。另外,反向代理還可以啟用高級URL策略和管理技術(shù),從而使處于不同web服務器系統(tǒng)的web頁面同時存在于同一個URL空間下。
從安全性來講:正向代理允許客戶端通過它訪問任意網(wǎng)站并且隱藏客戶端自身,因此你必須采取安全措施以確保僅為經(jīng)過授權(quán)的客戶端提供服務。反向代理對外都是透明的,訪問者并不知道自己訪問的是一個代理。而squid是一個forword/reverse proxy,兩個功能兼?zhèn),一般可以作為局域網(wǎng)的上網(wǎng)緩存,此時作為正向代理。一般服務器會讓squid作為前端,那就是充當反向代理,反向代理有很多軟件都可以,比如nginx、lighttpd,但他們兩個一般做不了正向代理。
4、透明代理(簡單代理):透明代理的意思是客戶端根本不需要知道有代理服務器的存在,它改編你的request fields (報文),并會傳送真實IP。注意,加密的透明代理則是屬于匿名代理,意思是不用設置使用代理了,例如Garden 2程序。
如何使用透明代理
透明代理技術(shù)中的透明是指客戶端感覺不到代理的存在,不需要在瀏覽器中設置任何代理,客戶只需要設置缺省網(wǎng)關(guān),客戶的訪問外部網(wǎng)絡的數(shù)據(jù)包被發(fā)送到缺省網(wǎng)關(guān),而這時缺省網(wǎng)關(guān)運行有一個代理服務器,數(shù)據(jù)實際上被被重定向到代理服務器的代理端口(如8080),即由本地代理服務器向外請求所需數(shù)據(jù)然后拷貝給客戶端。理論上透明代理可以對任何協(xié)議通用。但是在這種情況下客戶端必須正確設置DNS服務器。因為現(xiàn)在瀏覽器不設置任何代理。則DNS查詢必須由browser來解析,也就是要由客戶端必須在TCP/IP中設置的正確的DNS服務器,其完成dns解析。私有網(wǎng)地址為192.168.1.*, 其中客戶機是192.168.1.100,防火墻機器網(wǎng)卡是192.168.1.1。透明web代理被安裝在防火墻機器上并配置端口為8080。內(nèi)核使用iptables把與防火墻端口80的連接重定向到代理服務。
5、透明模式的防火墻就好象是一臺網(wǎng)橋(非透明的防火墻好象一臺路由器),網(wǎng)絡設備(包括主機、路由器、工作站等)和 所有計算機的設置(包括IP地址和網(wǎng)關(guān))無須改變,同時解析所有通過它的數(shù)據(jù)包,既增加了網(wǎng)絡的安全性,又降低了用戶管理的復雜程度。防火墻使用透明代理技術(shù),這些代理服務對用戶也是透明的,用戶意識不到防火墻的存在,便可完成內(nèi)外網(wǎng)絡的通訊。一般使用代理服務器時,每個用戶需要在客戶端程序中指明要使用代理,自行設置Proxy參數(shù)(如在瀏覽器中有專門的設置來指明HTTP或FTP等的代理)。而透明代理服務,用戶不需要任何設置就可以使用代理服務器,簡化了網(wǎng)絡的設置過程。