Nginx相關的概念、反向代理、負載均衡、動靜分離
文章目錄
一、Nginx簡介
1、什麼是nginx?
Nginx (" engine x")是一個高效能的HTTP和反向代理伺服器,特點是佔有記憶體少,併發能
力強,事實上nginx的併發能力確實在同類型的網頁伺服器中表現較好。
Nginx專為效能優化而開發,效能是其最重要的考量,實現上非常注重效率,能經受高負載
的考驗,有報告表明能支援高達50, 000個併發連線數。
2、nginx做為HTTP伺服器,有以下幾項基本特性
- 處理靜態檔案,素引檔案以及自動索引;開啟檔案描述符緩衝。
- 無快取的反向代理加速,簡單的負載均衡和容錯。
- FastCGI,簡單的負載均衡和容錯。
- 模組化的結構。包括gzipping,byte ranges, chunked responses,以及SSi-filter等flter。如果由FastCGI或其它代理伺服器處理單頁中存在的多個SSI ,則這項處理可以並行執行,而不需要相互等待。
- 支援SSL和TLSSNI
二、反向代理和正向代理
Nginx不僅可以做反向代理,實現負載均衡。還能用作正向代理來進行上網等功能。
1、正向代理
如果把區域網外的Internet 想象成一個巨大的資源庫, 則區域網中的客戶端要訪
-
在客戶端(瀏覽器)配置代理伺服器,通過代理伺服器進行網際網路訪問
2、反向代理
反向代理,其實客戶端對代理是無感知的,因為客戶端不需要任何配置就可以訪問,我們只需要將請求傳送到反向代理伺服器,由反向代理伺服器去選擇目標伺服器獲取資料後,在返回給客戶端,此時反向代理伺服器和目標伺服器對外就是一個伺服器,暴露的是代理伺服器地址,隱藏了真實伺服器IP地址。
三、負載均衡
客戶端傳送多個請求到伺服器,伺服器處理請求,有一些可能要與資料庫進行互動,服
務器處理完畢後,再將結果返回給客戶端。
這種架構模式對於早期的系統相對單一, 併發請求相對較少的情況下是比較適合的,成本也低。但是隨著資訊數量的不斷增長,訪問量和資料量的飛速增長,以及系統業務的複雜度增加,這種架構會造成伺服器相應客戶端的請求日益緩慢,併發量特別大的時候,還容易造成伺服器直接崩潰。很明顯這是由於伺服器效能的瓶頸造成的問題,那麼如何解決這種情況呢?
單個伺服器解決不了,我們增加伺服器的數量,然後將請求分發到各個伺服器上,將原先
請求集中到單個伺服器上的情況改為將請求分發到多個伺服器上,將負載分發到不同的服
務器,也就是我們所說的負載均衡
四、動靜分離
為了加快網站的解析速度,可以把動態頁面和靜態頁面由不同的伺服器來解析,加快解析
速度。降低原來單個伺服器的壓力。