1. 程式人生 > >nginx代理伺服器

nginx代理伺服器

Nginx是一個輕量級高效能的伺服器和反向代理,其特點是資源佔用少,併發能力高。   

 一  概述          

               反向代理(Reverse Proxy)方式是指以代理伺服器來接受Internet上的連線請求,然後將請求轉發給內部網路上的伺服器;並將從伺服器上得到的結果返回給Internet上請求連線的客戶端,此時代理伺服器對外就表現為一個伺服器。

               通常的代理伺服器,只用於代理內部網路對Internet的連線請求,客戶機必須指定代理伺服器,並將本來要直接傳送到Web伺服器上的http請求傳送到代理伺服器中。

               當一個代理伺服器能夠代理外部網路上的主機,訪問內部網路時,這種代理服務的方式稱為反向代理服務。

代理(英語:Proxy),也稱網路代理,是一種特殊的網路服務,允許一個網路終端(一般為客戶端)通過這個服務與另一個網路終端(一般為伺服器)進行非直接的連線。一些閘道器、路由器等網路裝置具備網路代理功能。一般認為代理服務有利於保障網路終端的隱私或安全,防止攻擊。[1] 提供代理服務的電腦系統或其它型別的網路終端稱為代理伺服器(英文:Proxy Server)。 一個完整的代理請求過程為:客戶端首先與代理伺服器建立連線,接著根據代理伺服器所使用的代理協議,請求對目標伺服器建立連線、或者獲得目標伺服器的指定資源(如:檔案)。在後一種情況中,代理伺服器可能對目標伺服器的資源下載至本地快取,如果客戶端所要獲取的資源在代理伺服器的快取之中,則代理伺服器並不會向目標伺服器傳送請求,而是直接返回快取了的資源。一些代理協議允許代理伺服器改變客戶端的原始請求、目標伺服器的原始響應,以滿足代理協議的需要。代理伺服器的選項和設定在計算機程式中,通常包括一個“防火牆”,允許使用者輸入代理地址,它會遮蓋他們的網路活動,可以允許繞過網際網路過濾實現網路訪問。[1]

 二  反向代理伺服器的工作原理

                    反向代理伺服器通常有兩種模型,它可以作為內容伺服器的替身,也可以作為內容伺服器叢集的負載均衡器。

              1,作內容伺服器的替身                     

                     如果您的內容伺服器具有必須保持安全的敏感資訊,如信用卡號資料庫,可在防火牆外部設定一個代理伺服器作為內容伺服器的替身。當外部客戶機嘗試訪問內容伺服器時,會將其送到代理伺服器。實際內容位於內容伺服器上,在防火牆內部受到安全保護。代理伺服器位於防火牆外部,在客戶機看來就像是內容伺服器。

                   當客戶機向站點提出請求時,請求將轉到代理伺服器。然後,代理伺服器通過防火牆中的特定通路,將客戶機的請求傳送到內容伺服器。內容伺服器再通過該通道將結果回傳給代理伺服器。代理伺服器將檢索到的資訊傳送給客戶機,好像代理伺服器就是實際的內容伺服器(參見圖 2)。如果內容伺服器返回錯誤訊息,代理伺服器會先行擷取該訊息並更改標頭中列出的任何 URL,然後再將訊息傳送給客戶機。如此可防止外部客戶機獲取內部內容伺服器的重定向 URL。

                  這樣,代理伺服器就在安全資料庫和可能的惡意攻擊之間提供了又一道屏障。與有權訪問整個資料庫的情況相對比,就算是僥倖攻擊成功,作惡者充其量也僅限於訪問單個事務中所涉及的資訊。未經授權的使用者無法訪問到真正的內容伺服器,因為防火牆通路只允許代理伺服器有權進行訪問。

 可以配置防火牆路由器,使其只允許特定埠上的特定伺服器(在本例中為其所分配埠上的代理伺服器)有權通過防火牆進行訪問,而不允許其他任何機器進出。


     2,作為內容伺服器的負載均衡器

                   可以在一個組織內使用多個代理伺服器來平衡各 Web 伺服器間的網路負載。在此模型中,可以利用代理伺服器的快取記憶體特性,建立一個用於負載平衡的伺服器池。此時,代理伺服器可以位於防火牆的任意一側。如果 Web 伺服器每天都會接收大量的請求,則可以使用代理伺服器分擔 Web 伺服器的負載並提高網路訪問效率。

                   對於客戶機發往真正伺服器的請求,代理伺服器起著中間調停者的作用。代理伺服器會將所請求的文件存入快取記憶體。如果有不止一個代理伺服器,DNS 可以採用“迴圈複用法”選擇其 IP 地址,隨機地為請求選擇路由。客戶機每次都使用同一個 URL,但請求所採取的路由每次都可能經過不同的代理伺服器。

                   可以使用多個代理伺服器來處理對一個高用量內容伺服器的請求,這樣做的好處是內容伺服器可以處理更高的負載,並且比其獨自工作時更有效率。在初始啟動期間,代理伺服器首次從內容伺服器檢索文件,此後,對內容伺服器的請求數會大大下降。