什么是反向代理


https://segmentfault.com/q/1010000003491873

 

A和B直接溝通,這就等於沒有代理

然后中間夾一個傳話的C,C就是代理了,A通過C把信息傳遞給B,然后再把B的反饋轉達給A.

在這個過程中,A知道溝通的直接目標是B,只不過由於各種原因無法直接和B面對面,需要中間人C,這就是所謂“正向代理”,其實i我們很少說正向代理,一般直接說代理

舉個例子:

我下訪問www.google.com,然而大家都知道它被搶了,我沒法直接訪問它,於是我連接了一個VPN

服務並設定其為本地HTTP訪問的代理,然后我再訪問www.google.com,此時我的請求被該VPN服務代理了,它幫我訪問了www.google.com然后把返回結果給我(叫做代理,不是叫做反向代理)

  • 這個例子是代理的一種應用場景,但並非代表代理只能用於這個
  • 最重要的特征是我知道www.google.com的存在,而且我訪問的網址也的確是www.google.com,只不過我的訪問請求由VPN代理來轉交,同樣相應也是如此
  • 在本例中,代理是透明的,用戶有可能不知道他的存在(通常是知道的,只不過代理的設置及可能不是他自己來做)

 

 

另一種情況是:

A並不知道B的存在,它只知道找C就可以得到想要的回復,對於A來說有沒有B,B!,C,C!......D,F都不重要,只要有C就夠了。而C則根據情況去獲取反饋然后相應給A。                         

這種就叫反向代理了

舉個例子:

我有一個Nginx服務部署再www.mysite.com的80端口,用戶訪問它就可以看見我做的網站;在我的網站中有一些Ajax請求獲取JSON數據,然而提供這些數據的API Service部署在服務器上的8000端口,該端口由於防火牆的阻撓使得用戶無法直接訪問到。

於是我重新配置了Nginx,讓它把所有經由:80/api/的訪問請求都代理給localhost:8000,然后把響應返回給原始請求方,這就是反向代理

  • 這是反向代理的一種應用場景,但並非代表它只能這樣用
  • 最重要的特征是我的用戶壓根不知道localhost:8000這個服務的存在,並且即使知道也訪問不到-----開VPN也訪問不到,這是兩碼事
  • 對於用戶來講,唯一的“對話”方只有www.mysite.com(80端口),他們不知道也不比要知道后面發生了什么

 

 參考  https://blog.csdn.net/qq_32963841/article/details/100552329

 

 

嗯,就醬~~


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM