前向代理和反向代理


第一次接觸代理是在大二計算機網絡課堂中,通由代理服務器可以讓網絡訪問更具伸縮性,可以拒絕訪問某些網站和協助訪問被和諧的網站。最近無意中接觸了反向代理,有對比正好有機會可以搞清楚前向代理和反向代理着兩個概念。

前向代理 一般提到的是前向代理。表面上客戶端 C 可以直接訪問服務器 S,但實際上 C 在訪問 S 的時候經過了中間的另一個中間的服務器 M,M就是代理服務器。為什么說是前向代理?因為前向代理是面向客戶端的,而不是服務器。M 接收了 C 的請求后,(有選擇的)對請求進行簡化或者其他處理,再向目標服務器請求數據。

C-------------M-------------S

前向代理
前向代理

對請求進行簡化或者其他處理意味着可以無視某些請求,譬如:學校發現 abc.com 站點上的內容很黃很暴力,為了在校學生的身心健康,在學校的代理服務器上對 abc.com 做限制,於是學生就不能訪問 abc.com 站點了,也可以說 abc.com 被和諧了。除此之外,前向代理還有:

  1. 訪問被和諧的站點,譬如翻牆等
  2. 隱藏客戶端,真正與服務器打交道的是前向代理
  3. 提高訪問速度,前向代理的緩存功能

關於前向代理,我們不得不熟悉聞名遐邇的 goagent 了。goagent 將 Google App Engine GAE 作為代理服務器中轉,從而突破圍牆。

反向代理 與前向代理相反,反向代理面向服務器,對於客戶端 C 訪問服務器 S 而言,好像 A 真的再訪問 S 一樣,其實真正的服務器是在 S 后面的 M.

C-------------S-------------M

反向代理
反向代理

所以,這幅圖已經告訴我們反向代理能做些什么:

  1. 負載均衡,真正處理業務邏輯的是再往后的 web 服務器
  2. 加速訪問靜態內容,和前向代理一樣有緩存的功能
  3. 隱藏真實服務器,客戶端不知道真正后台服務器是怎么樣的....

在這里要提一下 CDN 內容分發網絡,反向代理可以是 CDN 的一種實現原理。為此,找到一幅好圖:

CDN

從圖中可以看到 www.yourdomain.com 設置有三個節點,USA、EU、APAC。這三個節點可以緩存一些靜態內容,從而減輕后端服務器壓力。當然,這只是原理,其中還很多很牛犇的技術在里面。歡迎補充。

搗亂 2013-08-01

http://daoluan.net/blog


免責聲明!

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



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