【Develop】解析 Reverse Proxy 與 Forward Proxy

【Develop】解析 Reverse Proxy 與 Forward Proxy

本篇重點

  • Reverse Proxy 反向代理是在保護與加速後端伺服器,扮演對外單一入口。
  • Forward Proxy 正向代理是用於存取控制與匿名化,扮演用戶端請求的單一出口。
  • 解析兩種代理伺服器的工作流程、用途、使用時機。
  • 了解 Reverse Proxy 和 Load Balancer 的關係。
  • 了解 Forward Proxy 和 VPN 的相似之處。

Reverse Proxy

反向代理

用途

部署在網站伺服器之前,作為用戶端與內部伺服器群之間的單一對外入口。它的核心價值在於提供安全性、加速效能以及集中式管理。對於用戶端而言,所有請求都只與反向代理溝通,沒辦法得知後端伺服器真實的位址、數量與架構細節。

  • 隱藏後端伺服器 IP
  • 集中處理 SSL/TLS(HTTPS)
  • 進行快取以減少後端負擔
  • 壓縮、控制與檢查請求
  • 作為後端服務的流量入口(Gateway

工作流程

Reverse Proxy 工作流程

外部請求安全、高效得導向內部資源:

  1. 用戶端發送請求至 Reverse Proxy 的公網 IP 地址(例如:api.example.com)。
  2. Reverse Proxy 接收請求,根據預設的規則或負載平衡算法,決定將該請求導向至哪一個後端 Web 伺服器。
  3. 後端 Web 伺服器處理請求並生成回應。
  4. 後端 Web 伺服器將回應傳送回 Reverse Proxy。
  5. Reverse Proxy 將回應傳送回原始的用戶端。

健忘筆記

用戶端永遠只看到 Reverse Proxy 的 IP 地址,後端伺服器的 IP 地址被隱藏。

使用時機

應用情境核心功能具體範例
安全性強化屏蔽後端伺服器,過濾惡意請求。在 Reverse Proxy 上配置 WAF (Web Application Firewall) 來抵禦 SQL 注入或 DDoS 攻擊。
負載平衡與擴展將流量平均分配給多個後端伺服器,實現高可用性。使用 Nginx 將流量平均分散到三台處理應用程式邏輯的 App Server 上。
內容快取與加速快取靜態或常用內容,減少對後端伺服器的負載。快取網站的 CSS、JavaScript 文件或不常變動的產品頁面 HTML,以提升首次載入速度。

和 Load Balancer 的關係

Load Balancer(負載平衡器)是專門做「流量分配」的工具,用於在多台伺服器之間平均分散請求,並確保應用程式的高可用性,是 Reverse Proxy 的子集概念,專門聚焦在「流量調度」。

  • 防止單一伺服器過載
  • 依照策略選擇後端(Round Robin、Least Connection 等)
  • 自動把流量導到正常的伺服器(故障時跳過壞掉的)

健忘筆記

反向代理負載均衡器可以同時配置在同一台機器上。

Forward Proxy

正向代理

用途

部署在用戶端的網路環境中,作為內部網路發出請求時的單一出口,進行存取控制、過濾以及提供匿名性。對於外部的目標伺服器而言,所有請求都來自 Forward Proxy 的 IP 地址,無法知道實際發起請求的用戶端資訊。

  • 控制用戶訪問特定外部服務
  • 實作網路管控
  • 隱藏用戶端 IP

工作流程

Forward Proxy 工作流程

用戶端透過代理存取外部資源:

  1. 用戶端配置代理伺服器地址,發送請求至 Forward Proxy。(請求中包含完整的目標資源地址,例如:GET https://www.google.com/
  2. Forward Proxy 接收請求,進行策略檢查(例如:檢查是否在黑名單網站上)。
  3. 檢查通過後,Forward Proxy 以自身的身份向目標伺服器發送請求。
  4. 目標伺服器處理請求並將回應傳送回 Forward Proxy。
  5. Forward Proxy 接收回應並將其傳送回原始的用戶端。

使用時機

應用情境核心功能具體範例
網路存取控制限制用戶只能存取特定的外部網站或服務。企業網路禁止員工存取社群媒體或非業務相關的網站。
地理限制繞過隱藏真實的地理位置 IP,用於存取區域受限的內容。位於 A 國家的用戶端透過位於 B 國家的 Forward Proxy 存取僅限 B 國家的內容。
流量監控與日誌集中記錄並審查所有出站的網路流量,用於安全審計。網路安全團隊透過代理伺服器日誌追蹤是否有資料被洩露到外部伺服器。

和 VPN 的關係

VPN (虛擬私人網路) 的核心概念是建立一條加密的私人隧道,將用戶端的網路流量安全地導向遠端網路。

  • 建立加密隧道
  • 將所有流量包在隧道內傳輸
  • 保護封包內容不被攔截
  • 對外呈現為 VPN 伺服器的出口 IP

兩者都可用於繞過地理限制和隱藏 IP 地址,但 VPN 提供了更全面的加密保護,涵蓋了設備上所有的網路活動,而不僅僅是瀏覽器或單一應用程式的流量。

健忘筆記

VPN 強調安全隧道;Forward Proxy 強調代理與控制。

結論

Reverse Proxy 和 Forward Proxy 雖然都是「代理伺服器」,但網路架構中的角色與核心目的完全相反。

  • Reverse Proxy (反向代理):保護後端伺服器、加速內容載入、實現負載平衡。
  • Forward Proxy (正向代理):隱藏用戶端身份、存取控制與過濾、繞過地理限制。

延伸閱讀

【Develop】解析 Reverse Proxy 與 Forward Proxy

https://forgetfulengineer.github.io/Backend/reverse-proxy-forward-proxy/

作者

健忘工程師

發表於

2025-12-03

更新於

2025-12-03

許可協議


你可能也想看

【Linux】解析資料重定向
【Linux】使用 less 查看檔案
【Tool】cron 表達式(排程時間)轉換

評論

複製完成