本頁使用了標題或全文手工轉換

反向代理

維基百科,自由的百科全書
跳至導覽 跳至搜尋
將互聯網與內網連接起來的代理服務器。
互聯網中的請求發送給反向代理,反向代理把請求轉發到內網中的服務器。

電腦網路中,反向代理代理伺服器的一種。伺服器根據客戶端的請求,從其關聯的一組或多組後端服務器(如Web服務器)上獲取資源,然後再將這些資源返回給客戶端,客戶端只會得知反向代理的IP位址,而不知道在代理伺服器後面的伺服器叢集的存在[1]

前向代理不同,前向代理作為客戶端的代理,將從互聯網上獲取的資源返回給一個或多個的客戶端,伺服器端(如Web服務器)只知道代理的IP位址而不知道客戶端的IP位址;而反向代理是作為服務器端(如Web服務器)的代理使用,而不是客戶端。客戶端藉由前向代理可以間接訪問很多不同網際網路伺服器(叢集)的資源,而反向代理是供很多客戶端都通過它間接訪問不同後端服務器上的資源,而不需要知道這些後端服務器的存在,而以為所有資源都來自於這個反向代理服務器。

反向代理在現時的網際網路中並不少見,而另一些例子,像是CDN、SNI代理等,是反向代理結合DNS的一類延伸應用。

功能[編輯]

反向代理的主要作用為:

  • 對客戶端隱藏伺服器(叢集)的IP位址
  • 安全:作為應用層防火牆,為網站提供對基於Web的攻擊行爲(例如DoS/DDoS)的防護,更容易排查惡意軟體
  • 為後端伺服器(叢集)統一提供加密和SSL加速(如SSL終端代理)
  • 負載均衡,若伺服器叢集中有負荷較高者,反向代理通過URL重寫,根據連線請求從負荷較低者獲取與所需相同的資源或備援
  • 對於靜態內容及短時間內有大量存取請求的動態內容提供快取服務
  • 對一些內容進行壓縮,以節約頻寬或為網路頻寬不佳的網路提供服務
  • 減速上傳
  • 為在私有網路下(如區域網路)的伺服器叢集提供NAT穿透及外網發布服務
  • 提供HTTP存取認證[2]
  • 突破互聯網封鎖(不常用,因為反向代理與客戶端之間的連線不一定是加密連線,非加密連線仍有遭內容審查進而遭封禁的風險;此外面對針對網域名稱關鍵字過濾DNS快取污染/投毒攻擊乃至深度封包檢測也無能爲力)

常見反向代理軟體[編輯]

另見[編輯]

參考文獻[編輯]

  1. ^ Forward and reverse proxies. The Apache Software Foundation. [2011-02-09]. 
  2. ^ Possible to add basic HTTP access authentication via HAProxy?. serverfault.com.