帶着問題學:正向代理和反向代理的區別

前言

學習 nginx 過程當中,瞭解到反向代理 一詞,之前據說過不少次,但沒有具體瞭解到底爲何叫反向代理,那同時應該也有對應的正向代理一說。所以查閱了一下,下面記錄一下學習結果。nginx

先上結論:瀏覽器

  • 正向代理代理的是客戶端,隱藏真實客戶端;
  • 反向代理代理的是服務端,隱藏真實服務端。

什麼是正向代理

知乎上有個很好的例子這裏拿來用一下:安全

A同窗在大衆創業、萬衆創新的大時代背景下開啓他的創業之路,目前他遇到的最大的一個問題就是啓動資金,因而他決定去找馬雲爸爸借錢,可想而知,最後碰一鼻子灰回來了,情急之下,他想到一個辦法,找關係開後門,通過一番消息打探,原來A同窗的大學老師王老師是馬雲的同窗,因而A同窗找到王老師,託王老師幫忙去馬雲那借500萬過來,固然最後事成了。不過馬雲並不知道這錢是A同窗借的,馬雲是借給王老師的,最後由王老師轉交給A同窗。這裏的王老師在這個過程當中扮演了一個很是關鍵的角色,就是代理,也能夠說是正向代理,王老師代替A同窗辦這件事,這個過程當中,真正借錢的人是誰,馬雲是不知道的,這點很是關鍵。服務器

咱們常說的代理也就是隻正向代理,正向代理的過程,它隱藏了真實的請求客戶端,服務端不知道真實的客戶端是誰,客戶端請求的服務都被代理服務器代替來請求,某些***工具扮演的就是典型的正向代理角色。用瀏覽器訪問 http://www.google.com 時,被殘忍的block,因而你能夠在國外搭建一臺代理服務器,讓代理幫我去請求 google.com ,代理把請求返回的相應結構再返回給我。負載均衡

正向代理示意圖

什麼是反向代理

你們都有過這樣的經歷,撥打10086客服電話,可能一個地區的10086客服有幾個或者幾十個,你永遠都不須要關心在電話那頭的是哪個,叫什麼,男的,仍是女的,漂亮的仍是帥氣的,你都不關心,你關心的是你的問題能不能獲得專業的解答,你只須要撥通了10086的總機號碼,電話那頭總會有人會回答你,只是有時慢有時快而已。那麼這裏的10086總機號碼就是咱們說的反向代理。客戶不知道真正提供服務人的是誰。工具

反向代理隱藏了真實的服務端,當咱們請求 http://www.javashuo.com/tag/www.baidu.com 的時候,就像撥打10086同樣,背後可能有成千上萬臺服務器爲咱們服務,但具體是哪一臺,你不知道,也不須要知道,你只須要知道反向代理服務器是誰就行了,http://www.javashuo.com/tag/www.baidu.com 就是咱們的反向代理服務器,反向代理服務器會幫咱們把請求轉發到真實的服務器那裏去。Nginx就是性能很是好的反向代理服務器,用來作負載均衡。性能

反向代理

反向代理的實現過程

  1. 須要有一個負載均衡設備來分發用戶請求,將用戶請求分發到空閒的服務器上;
  2. 服務器返回本身的服務到負載均衡設備;
  3. 負載均衡將服務器的服務返回用戶。

以上的潛臺詞是:用戶和負載均衡設備直接通訊,也意味着用戶作服務器域名解析時,解析獲得的IP實際上是負載均衡的IP,而不是服務器的IP,這樣有一個好處是,當新加入/移走服務器時,僅僅須要修改負載均衡的服務器列表,而不會影響現有的服務。學習

正向代理與反向代理的區別

代理其實就是一箇中介,A和B原本能夠直連,中間插入一個C,C就是中介。網站

  • 正向代理:剛開始的時候,代理多數是幫助內網client訪問外網server用的(好比HTTP代理),從內到外
  • 反向代理:後來出現了反向代理,"反向"這個詞在這兒的意思實際上是指方向相反,即代理未來自外網client的請求forward到內網server,從外到內
  • 正向代理中,代理和客戶端同屬一個LAN,對服務端透明;
  • 反向代理中,代理和服務端同屬一個LAN,對服務端透明。

實際上不論正/反代理作的事都是代爲收發請求和響應。google

代理服務器應用的場景

場景一

若是不採用代理,用戶的IP、端口號直接暴露在Internet(儘管地址轉換NAT),外部主機依然能夠根據IP、端口號來開採主機安全漏洞,因此在企業網,通常都是採用代理服務器訪問互聯網。同時,若是有安全漏洞,因爲代理服務器數量有限,所以相對於修補千千萬萬的用戶主機,修補代理服務器的安全漏洞更方便會計。

場景二

在一個超大型局域網,德高望重的家長以爲小盆友們「幼稚」、「有時還有點單純」,外部的世界是洪水猛獸,爲了避免讓小盆友們學壞,決定不讓小盆友們訪問一些網站,可小盆友們有強烈的逆反心理,儂越是不讓我看,我越是想看,因而小盆友們使用了代理服務器,這些代理服務器將禁止訪問的網頁打包好,而後再轉交給小盆友,僅此而已。

固然關鍵的關鍵是代理服務器不在禁止名單當中!

相關文章
相關標籤/搜索