1. 程式人生 > 實用技巧 >Nginx相關的概念、反向代理、負載均衡、動靜分離

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 想象成一個巨大的資源庫, 則區域網中的客戶端要訪

問Internet,則需要通過代理伺服器來訪問,這種代理服務就稱為正向代理。

  • 在客戶端(瀏覽器)配置代理伺服器,通過代理伺服器進行網際網路訪問

    [外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片儲存下來直接上傳(img-c3omoMVo-1602565169473)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\image-20201013124659931.png)]

2、反向代理

反向代理,其實客戶端對代理是無感知的,因為客戶端不需要任何配置就可以訪問,我們只需要將請求傳送到反向代理伺服器,由反向代理伺服器去選擇目標伺服器獲取資料後,在返回給客戶端,此時反向代理伺服器和目標伺服器對外就是一個伺服器,暴露的是代理伺服器地址,隱藏了真實伺服器IP地址。

[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片儲存下來直接上傳(img-IBz1QouL-1602565169476)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\image-20201013125025947.png)]

三、負載均衡

客戶端傳送多個請求到伺服器,伺服器處理請求,有一些可能要與資料庫進行互動,服
務器處理完畢後,再將結果返回給客戶端。
這種架構模式對於早期的系統相對單一, 併發請求相對較少的情況下是比較適合的,成本也低。但是隨著資訊數量的不斷增長,訪問量和資料量的飛速增長,以及系統業務的複雜度增加,這種架構會造成伺服器相應客戶端的請求日益緩慢,併發量特別大的時候,還容易造成伺服器直接崩潰。很明顯這是由於伺服器效能的瓶頸造成的問題,那麼如何解決這種情況呢?

單個伺服器解決不了,我們增加伺服器的數量,然後將請求分發到各個伺服器上,將原先
請求集中到單個伺服器上的情況改為將請求分發到多個伺服器上,將負載分發到不同的服
務器,也就是我們所說的負載均衡

[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片儲存下來直接上傳(img-qMAlrZ73-1602565169481)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\image-20201013125301944.png)]

四、動靜分離

為了加快網站的解析速度,可以把動態頁面和靜態頁面由不同的伺服器來解析,加快解析
速度。降低原來單個伺服器的壓力。
[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片儲存下來直接上傳(img-ihypFu9i-1602565169488)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\image-20201013125351949.png)]