反向代理是什麼?用途有哪些?
反向代理在現代網路架構中扮演了重要角色,提供更多的靈活性與安全性。但反向代理是什麼呢?本文將深入探討反向代理的基本原理,並介紹代理伺服器的概念,比較最常見的兩種代理伺服器:正向代理與反向代理。
代理伺服器是什麼?
在了解反向代理之前,需要先知道代理伺服器的基本概念與運作方式。「代理伺服器(Proxy Server)」放置於使用者(或稱為客戶端,Client)與網站伺服器之間。依照不同部署方式與用途,代理伺服器有多種類型,例如正向代理伺服器、反向代理伺服器、透明代理伺服器、匿名代理伺服器、高匿代理伺服器、住宅代理、代理鏈等等。
在未使用代理伺服器的情況下,使用者造訪網站,存取網頁資料的請求會直接從使用者的裝置傳送至網站伺服器。假設你在 YouTube 上點選影片,你的裝置就會連接 YouTube 的主機伺服器,要求其回傳該影片的內容。資料傳輸過程中產生的流量,直接透過網際網路在兩端互通。
【未使用代理伺服器示意圖】
代理伺服器就是在客戶端和網站伺服器兩邊,扮演中間人的角色,代替其中一方發送數據,把直接流量變成間接流量。使用代理伺服器雖然會在資料傳輸過程增加額外的程序,但基於資安、隱私、存取權限控制等考量,代理伺服器廣受歡迎。其中最常見的就是正向代理與反向代理,下面段落會更詳細介紹這兩種代理伺服器與其用途。
【使用代理伺服器示意圖】
反向代理伺服器是什麼?
反向代理(Reverse Proxy)為代理伺服器的一種,與一組或多組主機伺服器相連。攔截由客戶端傳送至這些伺服器的存取請求,並代替主機伺服器將資料與資源傳送給客戶端裝置。在這樣的情況下,客戶端不會得知實際主機的存在、運作模式,或 IP 地址等等相關資訊。
【反向代理示意圖】
反向代理的用途
現代網路架構中,反向代理相當普遍,許多大型網站都會使用多層的反向代理,包括 Google、Amazon、Apple 等等,但是使用反向代理有什麼用途呢?
-
隱藏伺服器資訊: 隱藏內部伺服器的 IP 地址和網路架構架構。
-
負載平衡:分散流量到多個內部伺服器,提升系統性能。
-
增加可用性:在主機伺服器發生停機問題時,反向代理可以來自客戶端的請求轉發至其他可用的伺服器,讓網站或服務持續運作。
-
資訊安全:反向代理伺服器可應用在 DDoS 攻擊防禦上,緩解高流量。另外,反向代理也可處理 HTTPS 加密,提升整體資安機制。
-
分擔伺服器工作量:反向代理能夠透過處理 HTTPS 加密與解密的工作,減少主機伺服器的工作量,釋放運算資源。
-
網頁加速:以快取的方式暫存主機伺服器的資料,減少網頁在客戶端載入的時間。
反向代理跟 CDN 一樣嗎?
反向代理伺服器可以透過快取來加速網頁載入速度,這樣跟 CDN(內容傳遞網路 Content Delivery Network)是一樣的嗎?其實 CDN 就是利用反向代理的概念,加以延伸出的架構。雖然原理相近,也有類似的功能,但兩者在網路架構中著重的面向稍有不同。
反向代理和 CDN 都屬於客戶端和伺服器間的中介角色、可以快取的方式暫存內容,並提升資料傳輸效能與網路安全性。但相較於針對特定主機伺服器或單一企業組織的反向代理伺服器,CDN 更強調以數量龐大的快取伺服器分佈於全球多個地理位置,提供全球性的網頁加速服務。
正向代理伺服器是什麼?
反向代理安置於主機伺服器前端,代替其接收來自客戶端的請求;而「正向代理(Forward Proxy)」則是置於客戶端前,代替其向主機伺服器發出請求。同樣作為中間人的角色,反向代理與正向代理有截然不同的作用,兩者最根本的差異在於接收與傳出的流量導方向相反。
反向代理讓客戶端無法得知主機伺服器的資訊;而使用正向代理後,主機伺服器對提出存取請求的客戶端一無所知,例如使用者的 IP 地址、地理位置、瀏覽器資訊、作業系統資訊、裝置資訊、網路供應商資訊、存取請求行為和 HTTPS 標頭資訊等。
【正向代理與反向代理運作方式比較示意圖】
正向代理的用途
放置在客戶端前的正向代理在實務上有四大用途:
-
隱藏客戶端資料:客戶端的 IP 地址與其他資訊可由正向代理隱藏,主機伺服器只能看到代理伺服器的 IP。
-
突破訪問限制:幫助客戶端存取被防火牆或地區限制的內容,也就是所謂的「翻牆」。
-
訪問權限管制:控制客戶端可以訪問的網站或資源,例如企業或學校可以封鎖 Facebook 等社群網站,讓內部的使用者無法訪問。
-
網頁加速:代理伺服器可以快取內容,減少客戶端與主機伺服器之間的重複請求。
正向代理 |
反向代理 |
|
服務對象 |
客戶端(代表客戶端發送請求) |
伺服器端(代表伺服器接收請求) |
隱藏資訊 |
客戶端(IP 地址和其他資訊) |
伺服器(內部架構和 IP 地址) |
用途 |
- 提升客戶端隱私性 - 客戶端突破訪問限制 - 客戶端訪問權限管制 |
- 隱藏伺服器架構 - 負載平衡 - 提供高可用性 - DDoS 防禦 - 處理 HTTPS 加密/解密 |
如何選擇反向代理服務商
一般來說,企業決定開始使用反向代理伺服器後,下一步就是選擇反向代理的服務商。但反向代理服務商選擇眾多,有開源工具 Nginx、Apache、HAProxy、Traefik Proxy、Caddy;商用代理商解決方案 Envoy、Smartproxy;與專注快取功能的 Squid 等都可以協助企業架設反向代理。那企業在做選擇的時候,有哪些考量要點呢?
-
功能需求:首先需要釐清使用反向代理的目的,以及著重哪些功能。例如,若用於負載均衡,應考慮是否支持多種負載均衡演算法;若用於安全需求,應確認是否支援 HTTPS、DDoS 防護或用戶身份驗證;若用於內容快取,則需檢查是否具備完善的快取管理功能。
-
預計使用流量:根據企業的流量需求選擇合適的反向代理工具。考慮是否具備彈性擴展的能力,以適應業務成長。
-
系統相容性:服務商的反向代理伺服器是否與企業原有的 IT 架構相容。
-
費用:根據功能與需求所選擇的反向代理是否符合成本考量。例如自行架構反向代理伺服器需考量硬體設備成本,而使用雲端服務則會有每月固定支出等。
-
SLA(服務水準協定):確認服務商提供的 SLA 中是否明確列出承諾的正常執行時間、交付時間、回應時間和解決時間等指標。例如服務可用性是否達到 99.9% 或以上,是否包含罰款機制,並查詢該服務商是否有公開的服務可用性歷史記錄。以確保服務可以支援企業營運,避免發生停機問題。
-
技術支援:服務商是否提供完善的技術支援是關鍵考量,以在系統出現問題時,第一時間協助排除故障。例如是否提供 24/7 的技術支援、技術支援的方式為電子郵件或其他即時通訊、是否以企業所在國家的語言進行技術支援。
介於客戶端與主機伺服器的代理伺服器類型與功能多元,已是現代網路中不可或缺的架構,其中又以正向和反向代理最常見。反向代理可隱藏主機伺服器端的資訊、提升高用性與安全性,並協助主機伺服器平衡流量。正向代理則可以加強訪問網頁的權限控制與客戶端的隱私安全。但兩者皆可在不同的場景,提升系統性能、保障資訊安全,並滿足特企業營運需求。
立即聯絡晟崴科技為您提供CDN規劃服務