反向代理服務器(或反向代理)促進用戶對 Web 服務器/應用程序服務器的請求和服務器的響應。負載均衡器接收用戶請求,將它們相應地分配給一組服務器,然后將每個服務器的響應轉發給其各自的用戶。從上面的簡要定義可以看出,反向代理和負載均衡器有一些重疊的功能。
例如,它們都充當在客戶端-服務器模型中轉發請求和響應的中間節點。雖然它們在表面上看起來相似,但它們是兩種不同的架構,在網絡安全中扮演著不同的角色。本文詳細解開反向代理和負載均衡器之間的差異,以消除兩者之間的任何混淆。
什么是反向代理服務器?
反向代理服務器是用戶和 Web 服務器之間的中間設備或應用程序。反向代理是一種代理服務器,旨在通過確保用戶永遠不會與原始服務器直接通信來增強 Web 服務器的安全性。
反向代理如何工作?
典型的反向代理操作如下:
- 用戶發出HTTP請求(通過防火墻),例如將網站的 URL 輸入到他們的 Web 瀏覽器中。
- 反向代理接收用戶的請求。
- 反向代理“允許”或“拒絕”用戶的請求。
- 如果允許,反向代理會將請求轉發到 Web 服務器。如果被拒絕,它會向用戶發送錯誤或重定向消息。
- Web 服務器將響應(網站數據)發送回反向代理。
- 反向代理將服務器的響應轉發給用戶。
反向代理從它們的配置方式接收它們的名稱——“反向”到標準代理服務器(或正向代理)。正向代理位于用戶和 Internet 之間,而反向代理位于網絡邊緣和 Internet 之間。
反向代理的類型
反向代理有硬件和軟件兩種形式。
有許多流行的開源反向代理軟件解決方案,例如:
- Apache HTTP 服務器
- 阿帕奇交通服務器
- HAProxy
- NGINX
- 磅
- Tr?f?k
- 清漆 HTTP 緩存
Web 應用程序防火墻 (WAF) 是一種反向代理,通常部署在商業用例中。WAF 監控 Web 流量并保護組織的 Web 應用程序免受網絡攻擊,例如SQL 注入、敏感數據盜竊、跨站點腳本和其他漏洞。另一種類型的反向代理是第 7 層負載均衡器。第 7 層負載均衡器將 Web 請求分發到多個服務器,以提高客戶端網絡性能和用戶體驗。
反向代理的好處
雖然反向代理的主要目標是保護服務器端操作,但它的功能為客戶端和服務器都提供了好處。
增強的安全性
- 威脅防護:由于位于網絡邊緣,反向代理可防止惡意客戶端直接訪問和利用組織內部網絡中的 任何漏洞。
- 隱私:反向代理隱藏源服務器的 IP 地址以增加數據安全性,防止 Internet 服務提供商 (ISP)、Web 服務和數據中心監控其流量并可能導致數據泄露。
- 過濾:它們能夠將某些客戶端 IP 地址列入黑名單并限制客戶端可以發起的連接數量,這有助于防止DDoS 攻擊。
負載均衡
組織可以使用反向代理在多個后端服務器之間均勻高效地分配流量。負載平衡有助于防止站點關閉,因為在發生網絡中斷或 DDoS 攻擊時,流量可以重新路由到備用服務器(而不是依賴于一臺服務器)。
網絡加速
反向代理可實現更快的 Web 服務器響應時間,改善站點加載時間和用戶體驗。他們使用各種網絡加速技術來實現更高的速度。
- 緩存:每次 Web 服務器發送響應時,反向代理都會存儲它的本地副本。下次用戶發出相同的請求時,代理可以直接響應用戶,而不是把請求轉發到 Web 服務器,減少了響應時間,也減輕了服務器的負載。
- 壓縮:反向代理使用壓縮算法來減少發送服務器響應所需的帶寬,從而提高流量速度。
- SSL/TLS 卸載:反向代理可以對所有傳入的請求和響應 執行 SSL加密和身份驗證。
由于代理充當SSL連接的端點而不是 Web 服務器,因此 Web 服務器可以更快地提供內容。
什么是負載均衡器?
負載均衡器充當用戶和一組服務器之間的中介。負載平衡器用于減輕高流量服務器的壓力。它們將客戶端請求路由到最合適的服務器,從而最大限度地提高網絡速度和效率。通過確保運營效率,負載平衡器可幫助組織為其 IT 基礎架構建立可擴展的基礎。
負載均衡器如何工作?
通常,負載均衡器的操作如下:
- 用戶發出請求,例如 HTTP 請求——將網站的 URL 輸入到他們的 Web 瀏覽器中。
- 負載均衡器接收用戶的請求。
- 負載均衡器將請求發送到一組不同服務器中的單個服務器。
- 所選服務器將響應(網站數據)發送回負載平衡器。
- 負載均衡器將服務器的響應轉發給用戶。
雖然上面的示例解釋了負載均衡器如何處理 Web 請求,但負載均衡器可以支持許多其他協議,具體取決于它們的類型。負載均衡器選擇將用戶請求轉發到哪個服務器的方式取決于它使用的算法。
負載平衡算法
負載平衡算法是一組規則,用于確定在一組不同的服務器中選擇哪個服務器。
有幾種類型的負載平衡算法。
- 哈希:根據預定義的密鑰選擇服務器,例如客戶端的 IP 地址。 ?
- 最少連接:向處理最少現有客戶端連接的服務器發送請求。?
- 最短響應時間:使用最快響應時間和最少活動連接的組合公式。?
- 兩種選擇的力量:隨機選擇兩臺服務器,然后選擇具有最少活動連接的服務器。 ?
- Round Robin:以順序方式在服務器之間分發請求。
負載均衡器的類型
負載均衡器按照它們使用的數字系統以及它們運行的??開放系統互連 (OSI) 模型的特定層進行分類。
數字系統負載均衡器
硬件負載平衡器設備
硬件負載平衡器設備通常在數據中心中找到。它們是通常在傳輸層 (L4) 或應用層 (Layer 7) 上運行的物理設備。
軟件負載均衡器 (SLB)
軟件負載平衡器可作為負載平衡器即服務 (LBaaS) 購買,例如,作為應用交付控制器 (ADC) 的一個功能,或者可以直接安裝到服務器上。
OSI 層的負載均衡器
應用程序負載均衡器(7 級負載均衡器或反向代理)
應用程序負載均衡器在 OSI 模型的第 7 層(最高層)上運行。它根據應用程序級變量(例如 URL、HTTP 標頭和 SSL)分發 Web 請求。第 7 層負載均衡器是一個反向代理,因為它處理應用程序級別的請求——HTTP 運行的層。
網關負載均衡器
網關負載平衡器在第 3 層 (L3) 上運行。由于所有流量都流經一個入口和出口點,因此易于擴展。
全局服務器負載均衡器
全局服務器負載均衡器可以連接到世界各地的服務器。它響應來自地理上最接近請求用戶的服務器的用戶請求。
網絡負載均衡器(四級負載均衡器)
網絡負載平衡器在第 4 層 (L4) 上運行。它根據網絡變量分配流量,包括 IP 協議、源 IP、源端口、目標 IP 和目標端口。
負載均衡器的好處
負載平衡器能夠在多個高流量服務器之間有效地分配用戶請求的能力為客戶端-服務器模型提供了許多互惠互利的好處。
增強的用戶體驗
負載均衡器執行健康檢查以識別服務器中斷,然后將用戶流量重新路由到正常運行的服務器。他們通過攔截給用戶的錯誤響應消息或向服務器發送直接請求來進行健康檢查,這些請求需要特定的響應來表明服務器是健康的。負載均衡器在服務器錯誤事件中的干預意味著用戶體驗到的錯誤消息要少得多并避免響應延遲。
更高的可靠性
負載均衡器在多服務器部署中實現,確保請求均勻高效地分布。通過防止服務器過載和流量瓶頸,負載均衡器為用戶提供了更高的可靠性。許多服務器而不是單個服務器的可用性確保了用戶請求仍然得到滿足,即使在發生中斷的情況下也是如此。
會話持久性
由于HTTP/S是一種無狀態協議,會話持久性并不直觀,但對于許多應用程序有效執行而言是必需的。例如,電子商務網站等 Web 應用程序依靠會話持久性來保持購物籃處于活動狀態。負載平衡器確保特定用戶(即來自特定 IP 地址)的請求在會話期間始終發送到同一臺服務器。
反向代理和負載均衡器有什么區別?
反向代理和負載均衡器都提高了應用交付網絡的性能,但它們在這種優化中扮演的角色并不完全相同。反向代理特別是 7 級負載均衡器,專門處理 Web 請求。負載均衡器可以在 OSI 模型的 3-7 級上運行,在 Web 請求之上處理多種類型的請求,例如 DNS、SSL、TCP。
反向代理可以執行負載均衡器的其他角色。例如,反向代理還可以:
- 作為 WAF 運行
- 執行 Web 加速,例如緩存、TLS/SSL 卸載、壓縮
- 提供網絡安全 機制,例如威脅防護、IP隱藏、網頁過濾
負載均衡器的主要作用是將用戶請求分發到多個服務器。反向代理可用于促進用戶和單個服務器之間的請求。