什麼是反向代理?
反向代理是位於網頁伺服器前方的伺服器,並將用戶端(例如 Web 瀏覽器)要求轉送至那些網頁伺服器。反向代理通常在實作時有助於增加安全性、效能及可靠性。為了更好地瞭解反向代理的運作原理及其提供的好處,我們先來定義一下什麼是代理伺服器。
報告
2024 年 GigaOm CDN 雷達報告
什麼是代理伺服器?
正向代理(通常稱為代理、代理伺服器或 Web 代理)是位於一組用戶端機器前方的伺服器。當這些電腦向網際網路上的網站和服務發出請求時,代理伺服器會攔截這些請求,然後代表這些用戶端與網頁伺服器進行通訊,就像中間人一樣。
例如,典型的正向代理通訊中涉及 3 台電腦:
- A:這是使用者的家用電腦
- B:這是一個正向代理伺服器
- C:這是網站的來源伺服器(儲存網站資料的地方)
在標準的網際網路通訊中,電腦 A 將直接聯繫電腦 C,用戶端向來源伺服器傳送請求,來源伺服器回應用戶端。當有了正向代理後,A 將改為向 B 傳送請求,然後 B 將請求轉寄給 C。然後 C 將回應傳送給 B,B 再將回應轉寄回 A。
超快 CDN
使用 Cloudflare CDN 提升效能
為什麼有人會在他們的網際網路活動中新增這個額外的中間人?人們可能出於幾個原因而使用正向代理:
- 為了避免國家或機構的瀏覽限制:某些政府、學校和其他組織使用防火牆,僅允許使用者存取有限版本的網際網路。正向代理可用於繞過這些限制,因為它們允許使用者連接到代理,而不是直接連接到他們正在造訪的網站。
- 封鎖對某些內容的存取:反過來,也可以設定代理以封鎖一組使用者存取某些網站。例如,可以設定學校網路,透過啟用內容篩選規則的代理連接到 Web,拒絕轉寄來自 Facebook 和其他社交媒體網站的回應。
- 保護他們的線上身分:在某些情況下,普通網際網路使用者只是希望增加線上匿名性,但在其他情況下,網際網路使用者可能生活在政府對持不同政見者施加嚴重後果的地方。在網路論壇或社交媒體上批評政府可能會導致這些使用者被罰款或監禁。如果這些持不同政見者使用正向代理連接到他們發佈政治敏感評論的網站,則更難以使用發佈評論的 IP 位址來追溯持不同政見者。因為只能看到代理伺服器的 IP 位址。
反向代理有何不同?
反向代理是位於一個或多個網頁伺服器前方的伺服器,用於攔截來自用戶端的請求。這與正向代理不同,在正向代理中,代理位於用戶端前方。使用反向代理,當用戶端向網站的來源伺服器傳送請求時,反向代理伺服器會在網路邊緣攔截這些請求。然後,反向代理伺服器將向來源伺服器傳送請求並從來源伺服器接收回應。
正向和反向代理之間的區別很微妙,但很重要。簡單來說,正向代理位於用戶端前方,並確保沒有來源伺服器直接與該特定用戶端通訊。而反向代理位於來源伺服器前方,並確保沒有用戶端直接與該來源伺服器通訊。
讓我們再一次用相關的電腦來說明:
- D:任意數量的使用者家用電腦
- E:這是一個反向代理伺服器
- F:一台或多台來源伺服器
通常,來自 D 的所有請求都會直接傳送給 F,F 會將回應直接傳送給 D。使用反向代理時,來自 D 的所有請求將直接傳送到 E,E 將向 F 傳送請求並接收來自 F 的回應,然後將適當的回應傳遞給 D。
下面我們概述了反向代理的一些好處:
- 負載平衡:每天獲得數百萬使用者的熱門網站可能無法使用單個來源伺服器處理其所有傳入網站流量。相反,網站可以分散在不同伺服器集區中,所有伺服器都處理同一網站的請求。在這種情況下,反向代理可以提供負載平衡解決方案,該解決方案將在不同的伺服器之間均勻分配傳入流量,以防止任何單個伺服器過載。如果伺服器完全出現故障,其他伺服器可以代為處理流量。
- 防止攻擊:使用反向代理后,網站或服務永遠不需要顯示其來源伺服器的 IP 位址。這使得攻擊者更難利用針對性攻擊,例如 DDoS攻擊。相反,攻擊者只能針對反向代理(如 Cloudflare 的 CDN),後者將具有更嚴格的安全性和更多的資源來抵禦網路攻擊。
- 全球伺服器負載平衡 (GSLB):在這種負載平衡形式中,網站可以分散在全球的多台伺服器上,反向代理會將用戶端請求傳送到地理位置上離它們最近的伺服器。這減少了請求和回應需要傳輸的距離,從而最大限度地減少載入時間。
- 快取:反向代理還可以快取內容,從而提高效能。例如,如果巴黎的使用者造訪網頁伺服器位於洛杉磯的反向代理網站,則該使用者實際上可能連接到巴黎的本地反向代理伺服器,然後該伺服器需要與洛杉磯的來源伺服器通訊。然後,代理伺服器可以快取(或臨時儲存)回應資料。後面瀏覽該網站的巴黎使用者將從位於巴黎的反向代理伺服器獲取本地快取版本,從而提高效能。
- SSL 加密:為每個用戶端加密和解密 SSL(或 TLS)通訊對於來源伺服器來說計算量很大。可以將反向代理設定為解密所有傳入請求並加密所有傳出回應,從而釋放來源伺服器上的寶貴資源。
如何實作反向代理
一些公司構建自己的反向代理,但這需要大量的軟體和硬體工程資源以及大量投資實體硬體。獲得反向代理所有好處的最簡單且最具成本效益的方法之一是註冊 CDN 服務。例如,Cloudflare CDN 提供了上面列出的所有效能和安全性功能,以及許多其他功能。