什麼是代理伺服器(Proxy Server)#

代理伺服器是一個位於用戶端(Client)與後端伺服器(Back-end Server)之間的中介軟硬體。它接收來自用戶端的請求,並將其轉發給原始伺服器(Origin Server)。

代理伺服器的常見用途:

  • 過濾請求(Filter)——阻擋不符合規則的請求
  • 記錄請求(Log)——留下存取紀錄供稽核
  • 轉換請求(Transform)——新增或移除 Header、加解密、壓縮等
  • 快取回應(Cache)——若多個用戶端存取相同資源,代理伺服器可以快取該資源,直接回應而不需每次都存取遠端伺服器

圖 5.1:正向代理架構圖

請求協調與最佳化#

代理伺服器在協調多台伺服器的請求方面極為有用,能從系統整體的角度最佳化流量。

Collapsed Forwarding(請求合併轉發)#

  • 將多個相同或相似的資料存取請求合併為單一請求,再將結果回傳給所有用戶端
  • 當多個節點同時請求相同資料,且該資料不在快取中時,代理可將這些請求合併為一次,只讀取磁碟一次即可

空間局部性合併(Spatial Locality Collapsing)#

  • 代理還能合併在儲存空間中位置相鄰的資料請求(例如磁碟上連續的資料區塊)
  • 例如多台伺服器分別請求某個檔案的 part1、part2、part3,代理可辨識這些請求的空間局部性,將其合併為一次完整的檔案讀取
  • 此策略能大幅降低延遲,在對數 TB 規模的資料進行隨機存取時效果尤為顯著

代理在高負載場景或快取空間有限的情況下特別有用,因為它能將多個請求批次處理為單一請求,有效降低後端壓力。