什麼是反向代理,什麼又是正向代理?

大雄45發表於2021-04-16
導讀 說起Nginx,我們都知道它可以用來做反向代理。那麼,到底什麼是反向代理,對應的正向代理又是什麼呢?這篇文章就帶大家來了解一下。其中反向代理也是系統架構的重要組成部分。

什麼是反向代理,什麼又是正向代理?什麼是反向代理,什麼又是正向代理?

說起Nginx,我們都知道它可以用來做反向代理。那麼,到底什麼是反向代理,對應的正向代理又是什麼呢?這篇文章就帶大家來了解一下。其中反向代理也是系統架構的重要組成部分。

說起代理其本質上可以理解為中介。當A和B不方便進行互動時,往往會引入一箇中間角色C,那麼C便是中介,便是代理。

正向代理

正向代理伺服器通常位於客戶端和伺服器之間,類似一個跳板機,透過代理伺服器可以訪問到目標伺服器。

正向代理時,通常,客戶端傳送對目標伺服器的請求,代理伺服器在中間將請求轉發給目標伺服器,並將結果返回給客戶端。

正向代理時客戶端必須要進行一些特別的設定才能使用。

什麼是反向代理,什麼又是正向代理?什麼是反向代理,什麼又是正向代理?

正向代理

比如當我們想訪問谷歌,但無法直接訪問,這就需要先透過一個正向代理伺服器,請求到代理伺服器,再由代理伺服器進行訪問,並把訪問結果進行返回。在客戶看來,相當於直接請求谷歌。

正向代理通常用於如下場景:

  1. 訪問原來無法訪問的資源,如google;
  2. 使用緩衝特性減少網路使用率,加速訪問資源;
  3. 對客戶端訪問授權,上網進行認證;
  4. 代理可以記錄使用者訪問記錄(上網行為管理);
  5. 隱藏客戶端身份(目標者不知道幕後操縱者是誰);
反向代理

反向代理(Reverse Proxy)與正向代理恰好相反,代理服務位於伺服器端。

對客戶端來說,反向代理伺服器就好像是目標伺服器。反向代理伺服器接收客戶端發來的請求,然後將其分發到內網的伺服器,並將內網伺服器返回的結果返回給客戶端。

整個過程客戶端並不會感知到反向代理後面的服務,也不需要客戶端做任何設定,只需要把反向代理伺服器當成真正的伺服器就行。

什麼是反向代理,什麼又是正向代理?什麼是反向代理,什麼又是正向代理?

反向代理

反向代理的用途:

  1. 保護和隱藏原始資源伺服器,防止攻擊,通常將反向代理作為公網訪問地址,Web伺服器是內網;
  2. 負載均衡,透過反向代理來進行伺服器資源的最佳化處理;
  3. 加密和SSL加速;
  4. 快取靜態內容;
  5. 壓縮、減速上傳、安全、外網釋出等。
正向代理與反向代理的區別

用途上區分:

  1. 正向代理:正向代理用途是為了在防火牆內的區域網提供訪問internet的途徑。
  2. 反向代理:反向代理的用途是將防火牆後面的伺服器提供給internet使用者訪問。

安全性區分:

  1. 正向代理:正向代理允許客戶端透過它訪問任意網站並且隱蔽客戶端自身,因此必須採取安全措施來確保僅為經過授權的客戶端提供服務;
  2. 反向代理:對外是透明的,訪問者並不知道自己訪問的是代理。對訪問者而言,它以為訪問的就是原始伺服器。
透明代理

透明代理比較類似正向代理的功能,客戶端根本不需要知道有代理伺服器的存在,它改變你的request fields(報文),並會傳送真實IP,多用於路由器的NAT轉發中。

比如為了工作效率或者安全,A公司遮蔽了QQ軟體的使用。公司在內網和外網的中間插入一個透明代理,根據規則抓取請求內容,遇到qq的請求就把它給遮蔽掉,這樣就完成了透明遮蔽。

小結

正向代理和反向代理的區別在於代理的物件不一樣,正向代理的代理物件是客戶端,反向代理的代理物件是服務端。

代理伺服器站在客戶端那邊就是正向代理,代理伺服器站在原始伺服器那邊就是反向代理。


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69955379/viewspace-2768444/,如需轉載,請註明出處,否則將追究法律責任。

相關文章