• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>

            牽著老婆滿街逛

            嚴以律己,寬以待人. 三思而后行.
            GMail/GTalk: yanglinbo#google.com;
            MSN/Email: tx7do#yahoo.com.cn;
            QQ: 3 0 3 3 9 6 9 2 0 .

            圖解正向代理、反向代理、透明代理

            轉載自:http://z00w00.blog.51cto.com/515114/1031287


            套用古龍武俠小說套路來說,代理服務技術是一門很古老的技術,是在互聯(lián)網早期出現就使用的技術。一般實現代理技術的方式就是在服務器上安裝代理服務軟件,讓其成為一個代理服務器,從而實現代理技術。常用的代理技術分為正向代理、反向代理和透明代理。本文就是針對這三種代理來講解一些基本原理和具體的適用范圍,便于大家更深入理解代理服務技術。

            一、正向代理(Forward Proxy)

               一般情況下,如果沒有特別說明,代理技術默認說的是正向代理技術。關于正向代理的概念如下:
            正向代理(forward)是一個位于客戶端【用戶A】和原始服務器(origin server)【服務器B】之間的服務器【代理服務器Z】,為了從原始服務器取得內容,用戶A向代理服務器Z發(fā)送一個請求并指定目標(服務器B),然后代理服務器Z向服務器B轉交請求并將獲得的內容返回給客戶端??蛻舳吮仨氁M行一些特別的設置才能使用正向代理。如下圖1.1
            (圖1.1
            從上面的概念中,我們看出,文中所謂的正向代理就是代理服務器替代訪問方【用戶A】去訪問目標服務器【服務器B
            這就是正向代理的意義所在。而為什么要用代理服務器去代替訪問方【用戶A】去訪問服務器B呢?這就要從代理服務器使用的意義說起。
            使用正向代理服務器作用主要有以下幾點:

            1、訪問本無法訪問的服務器B,如下圖1.2

            (圖1.2

             

            我們拋除復雜的網絡路由情節(jié)來看圖1.2,假設圖中路由器從左到右命名為R1,R2

            假設最初用戶A要訪問服務器B需要經過R1R2路由器這樣一個路由節(jié)點,如果路由器R1或者路由器R2發(fā)生故障,那么就無法訪問服務器B了。但是如果用戶A讓代理服務器Z去代替自己訪問服務器B,由于代理服務器Z沒有在路由器R1R2節(jié)點中,而是通過其它的路由節(jié)點訪問服務器B,那么用戶A就可以得到服務器B的數據了。

            現實中的例子就是“翻/墻”。不過自從VPN技術被廣泛應用外,“翻/墻”不但使用了傳統(tǒng)的正向代理技術,有的還使用了VPN技術。

             

            2、加速訪問服務器B

            這種說法目前不像以前那么流行了,主要是帶寬流量的飛速發(fā)展。早期的正向代理中,很多人使用正向代理就是提速。還是如圖1.2
            假設用戶A到服務器B,經過R1路由器和R2路由器,而R1R2路由器的鏈路是一個低帶寬鏈路。而用戶A到代理服務器Z,從代理服務器Z到服務器B都是高帶寬鏈路。那么很顯然就可以加速訪問服務器B了。
             

            3、Cache作用

            Cache(緩存)技術和代理服務技術是緊密聯(lián)系的(不光是正向代理,反向代理也使用了Cache(緩存)技術。還如上圖所示,如果在用戶A訪問服務器B某數據J之前,已經有人通過代理服務器Z訪問過服務器B上得數據J,那么代理服務器Z會把數據J保存一段時間,如果有人正好取該數據J,那么代理服務器Z不再訪問服務器B,而把緩存的數據J直接發(fā)給用戶A。這一技術在Cache中術語就叫Cache命中。如果有更多的像用戶A的用戶來訪問代理服務器Z,那么這些用戶都可以直接從代理服務器Z中取得數據J,而不用千里迢迢的去服務器B下載數據了。
             

            4、客戶端訪問授權

            這方面的內容現今使用的還是比較多的,例如一些公司采用ISA SERVER做為正向代理服務器來授權用戶是否有權限訪問互聯(lián)網,挼下圖1.3

            (圖1.3

            1.3防火墻作為網關,用來過濾外網對其的訪問。假設用戶A和用戶B都設置了代理服務器,用戶A允許訪問互聯(lián)網,而用戶B不允許訪問互聯(lián)網(這個在代理服務器Z上做限制)這樣用戶A因為授權,可以通過代理服務器訪問到服務器B,而用戶B因為沒有被代理服務器Z授權,所以訪問服務器B時,數據包會被直接丟棄。

            5、隱藏訪問者的行蹤

            如下圖1.4 我們可以看出服務器B并不知道訪問自己的實際是用戶A,因為代理服務器Z代替用戶A去直接與服務器B進行交互。如果代理服務器Z被用戶A完全控制(或不完全控制),會慣以“肉雞”術語稱呼。

            (圖1.4)

             

            我們總結一下 正向代理是一個位于客戶端和原始服務器(origin server)之間的服務器,為了從原始服務器取得內容,客戶端向代理發(fā)送一個請求并指定目標(原始服務器),然后代理向原始服務器轉交請求并將獲得的內容返回給客戶端。客戶端必須設置正向代理服務器,當然前提是要知道正向代理服務器的IP地址,還有代理程序的端口。

             

            二、反向代理(reverse proxy

            反向代理正好與正向代理相反,對于客戶端而言代理服務器就像是原始服務器,并且客戶端不需要進行任何特別的設置??蛻舳讼蚍聪虼淼拿臻g(name-space)中的內容發(fā)送普通請求,接著反向代理將判斷向何處(原始服務器)轉交請求,并將獲得的內容返回給客戶端。

            使用反向代理服務器的作用如下:

            1、  保護和隱藏原始資源服務器

            如下圖2.1

            (圖2.1
            用戶A始終認為它訪問的是原始服務器B而不是代理服務器Z,但實用際上反向代理服務器接受用戶A的應答,從原始資源服務器B中取得用戶A的需求資源,然后發(fā)送給用戶A。由于防火墻的作用,只允許代理服務器Z訪問原始資源服務器B。盡管在這個虛擬的環(huán)境下,防火墻和反向代理的共同作用保護了原始資源服務器B,但用戶A并不知情。

            2、  負載均衡

            如下圖2.2
            (圖2.2
             
               當反向代理服務器不止一個的時候,我們甚至可以把它們做成集群,當更多的用戶訪問資源服務器B的時候,讓不同的代理服務器Zx)去應答不同的用戶,然后發(fā)送不同用戶需要的資源。
            當然反向代理服務器像正向代理服務器一樣擁有CACHE的作用,它可以緩存原始資源服務器B的資源,而不是每次都要向原始資源服務器B請求數據,特別是一些靜態(tài)的數據,比如圖片和文件,如果這些反向代理服務器能夠做到和用戶X來自同一個網絡,那么用戶X訪問反向代理服務器X,就會得到很高質量的速度。這正是CDN技術的核心。如下圖2.3
            (圖2.3
             
            我們并不是講解CDN,所以去掉了CDN最關鍵的核心技術智能DNS。只是展示CDN技術實際上利用的正是反向代理原理這塊。
            反向代理結論與正向代理正好相反,對于客戶端而言它就像是原始服務器,并且客戶端不需要進行任何特別的設置??蛻舳讼蚍聪虼淼拿臻g(name-space)中的內容發(fā)送普通請求,接著反向代理將判斷向何處(原始服務器)轉交請求,并將獲得的內容返回給客戶端,就像這些內容原本就是它自己的一樣。
            基本上,網上做正反向代理的程序很多,能做正向代理的軟件大部分也可以做反向代理。開源軟件中最流行的就是squid,既可以做正向代理,也有很多人用來做反向代理的前端服務器。另外MS ISA也可以用來在WINDOWS平臺下做正向代理。反向代理中最主要的實踐就是WEB服務,近些年來最火的就是Nginx了。網上有人說NGINX不能做正向代理,其實是不對的。NGINX也可以做正向代理,不過用的人比較少了。
             

            三、透明代理

                如果把正向代理、反向代理和透明代理按照人類血緣關系來劃分的話。那么正向代理和透明代理是很明顯堂親關系,而正向代理和反向代理就是表親關系了 

            透明代理的意思是客戶端根本不需要知道有代理服務器的存在,它改編你的request fields(報文),并會傳送真實IP。注意,加密的透明代理則是屬于匿名代理,意思是不用設置使用代理了。

            透明代理實踐的例子就是時下很多公司使用的行為管理軟件。如下圖3.1

            (圖3.1

             

             

            用戶A和用戶B并不知道行為管理設備充當透明代理行為,當用戶A或用戶B向服務器A或服務器B提交請求的時候,透明代理設備根據自身策略攔截并修改用戶AB的報文,并作為實際的請求方,向服務器AB發(fā)送請求,當接收信息回傳,透明代理再根據自身的設置把允許的報文發(fā)回至用戶AB,如上圖,如果透明代理設置不允許訪問服務器B,那么用戶A或者用戶B就不會得到服務器B的數據。
             

            本文出自 “丁胖胖的BLOG” 博客,請務必保留此出處http://z00w00.blog.51cto.com/515114/1031287

            posted on 2015-04-01 16:45 楊粼波 閱讀(1042) 評論(0)  編輯 收藏 引用

            久久五月精品中文字幕| 久久久久亚洲精品无码网址| 久久99这里只有精品国产| 久久久精品国产亚洲成人满18免费网站 | 97精品伊人久久久大香线蕉| 国内精品伊人久久久久影院对白| 久久香蕉国产线看观看猫咪?v| 综合网日日天干夜夜久久| 99久久久国产精品免费无卡顿| 久久久精品国产Sm最大网站| 久久人人爽人人人人爽AV| 久久精品一本到99热免费| 久久精品国产亚洲AV不卡| 久久久久国产精品嫩草影院| 国产精品99久久99久久久| 欧美久久亚洲精品| 精品久久香蕉国产线看观看亚洲| 一本综合久久国产二区| 精品久久久久久久| 久久无码中文字幕东京热| 91精品国产综合久久香蕉| 色综合久久综合中文综合网| 久久男人AV资源网站| 色综合久久久久网| www性久久久com| 久久精品国产亚洲av影院| 三级韩国一区久久二区综合 | 久久99九九国产免费看小说| 久久久久亚洲AV无码麻豆| 国产精品久久久久久久人人看| 久久综合久久综合九色| 精品一区二区久久| 九九精品99久久久香蕉| 东方aⅴ免费观看久久av| 久久中文字幕精品| 久久中文字幕人妻丝袜| 三级片免费观看久久| 亚洲欧美国产日韩综合久久| 亚洲欧洲精品成人久久奇米网| 日韩欧美亚洲综合久久影院Ds| 久久99国产一区二区三区|