您可以使用兩種不同的方法,來進行反向代理。第一種方法是利用 Proxy Server 的安全性功能來處理作業事件。第二種方法是利用快取在使用頻繁的伺服器上提供負載平衡功能。這兩種方法不限於在防火牆上運作,因此其使用方法與傳統的代理伺服器不同。
如果您的內容伺服器上有必須妥善保護的機密資訊,如信用卡號資料庫等,您可以在防火牆外設置代理伺服器,以做為內容伺服器的替代伺服器。當外部用戶端嘗試存取內容伺服器時,就會被改送至代理伺服器,而內容伺服器上真正的內容則會安全地保留在防火牆內。代理伺服器位於防火牆之外,而用戶端會將其視為內容伺服器。
當用戶端對網站提出請求時,該請求會被送至代理伺服器。接著代理伺服器會經由防火牆的特定通道,將用戶端的請求傳送至內容伺服器。內容伺服器會經由通道將結果送回代理伺服器。代理伺服器會將所擷取的資訊傳送至用戶端,就像實際的內容伺服器一般,如圖 14–1 所示。若內容伺服器傳回錯誤訊息,則代理伺服器可截取訊息,並在將訊息傳送至用戶端之前,變更標頭所列的任何 URL。此運作方式可防止外部用戶端取得連結至內部內容伺服器的重新導向 URL。
代理伺服器以這種方式,在安全的資料庫和可能的惡意攻擊之間多加一道屏障。即使攻擊成功 (雖然不太可能),攻擊者所能擷取的內容也很可能僅限於單一作業事件的資訊,不太可能取得整個資料庫的存取權。未經授權的使用者無法進入實際的內容伺服器,因為防火牆通道僅允許代理伺服器存取實際的內容伺服器。
您可以對防火牆路由器進行配置,允許特定連接埠上的特定伺服器 (在此例中是指其指定連接埠上的代理伺服器) 取得通過防火牆的存取權,但不允許其他機器出入防火牆。
當代理伺服器和其他機器之間有一或多個連線採用安全通訊端層 (SSL) 協定來加密資料時,就能確保安全的反向代理。
安全的反向代理有多種用途:
為防火牆外的代理伺服器與防火牆內的安全內容伺服器之間,提供加密的連線
讓用戶端以安全的方式連線至代理伺服器,增強資訊 (如信用卡號) 傳輸的安全性
安全的反向代理會因資料加密時需要經常性耗用時間,而使每個安全連線的速度減緩。不過,因 SSL 提供快取機制,連線的雙方可重複使用先前所協議的安全性參數,而大幅縮短後續連線的經常性耗用時間。
用戶端與代理伺服器之間的安全連線。如果代理伺服器和內容伺服器之間所交換的資訊,不太可能或不可能遭未經授權的使用者存取 (如下圖所示),則這個方案就很有用。
代理伺服器與內容伺服器之間的安全連線。如果您的用戶端位於防火牆內部,而內容伺服器位於防火牆外部,則這個方案就很有用。在此方案中,您的代理伺服器可做為網站之間的安全通道,如下圖所示。
用戶端與代理伺服器以及代理伺服器與內容伺服器之間的安全連線。如果伺服器、代理伺服器和用戶端之間所交換的資訊都需要保密,則這個方案就很有用。在此方案中,您的代理伺服器由於有用戶端認證提供額外的安全性,因此能做為網站之間的安全通道,如下圖所示。
如需有關如何設定各項配置的資訊,請參閱設定反向代理伺服器。
除了 SSL 之外,代理伺服器也可以使用用戶端認證,此認證要求向代理伺服器提出請求的電腦提供憑證或其他形式的識別以驗證其身份。
您可以在組織內使用多部代理伺服器,以平衡 Web 伺服器之間的網路負載。此模型利用代理伺服器的快取功能,建立伺服器池以進行負載平衡。在此例中,代理伺服器可以位於防火牆的任一側。若您的 Web 伺服器每天都會收到大量請求,則可以利用代理伺服器來分擔 Web 伺服器的負載,以提高網路存取的效率。
代理伺服器相當於用戶端請求與真實伺服器之間的媒介。代理伺服器會快取所請求的文件。若您有一部以上的代理伺服器,DNS 可以「循環」選取請求的 IP 位址,對各項請求進行隨機路由。用戶端每次都使用相同的 URL,但是每次請求所採取的路由可能每次都透過不同的代理伺服器。
使用多部代理伺服器來處理傳送至使用頻繁的內容伺服器之請求的優點是,伺服器可以更有效率的方式處理更大的負載,這是單一代理伺服器無法比擬的。代理伺服器在初次啟動期間會從內容伺服器擷取文件,之後傳送至內容伺服器的請求數量就會大幅減少。
只有 CGI 請求和偶而發生的新請求才必須送至內容伺服器。其餘請求都可由代理伺服器來處理。例如,假設傳送至伺服器的請求中有 90% 都不是 CGI 請求,表示您可以快取這些請求,而您的內容伺服器每天會接收 2 百萬次點閱。在此情況下,若您連接三部反向代理伺服器,而每部每天可處理 2 百萬次點閱,那麼每天總共可接收 6 百萬次點閱。至於每天從每部代理伺服器傳送至內容伺服器的 10% 請求約為 20 萬次點閱,表示總點閱次數只有 60 萬次,如此自然可以大幅提升處理效率。點閱次數可以從大約 2 百萬次增加為 6 百萬次,而內容伺服器的負載則相對從 2 百萬次減少為 60 萬次。但實際的結果會依照您的狀況而有所不同。