首頁 > 軟體

Nginx的基本概念和原理

2022-03-20 19:00:03

一、Nginx基本概念

(engine x)是一個高效能的HTTP和反向代理web伺服器,同時也提供了IMAP/POP3/SMTP服務。其特點是佔有記憶體少,並行能力強,事實上nginx的並行能力在同型別的網頁伺服器中表現較好,中國大陸使用nginx網站使用者有:百度、京東、新浪、網易、騰訊、淘寶等。

Nginx專為效能優化而開發,效能是器最重要的考量,實現上非常注重效率,能經受高負載的考驗,據報告能支援高達50,000個並行連線數。

Nginx不僅能做反向代理,實現負載均衡;還能可以作正向代理來進行上網等功能。

二、反向代理

在使用者端(瀏覽器)設定代理伺服器,通過代理伺服器進行網際網路存取。代理物件是使用者端,不知道伺服器端是誰。

使用者端不需要任何設定就能存取,只需要將請求傳送到反向代理伺服器,由反向代理伺服器去選擇目標伺服器,獲取資料後再返回給使用者端。對外就一個伺服器,暴露的是反向代理伺服器地址,隱藏了真實伺服器IP地址。代理物件是伺服器端,不知道使用者端是誰。

三、負載均衡

使用者端傳送多個請求到伺服器,伺服器處理請求,有些可能要存取資料庫,伺服器處理完畢後再將結果返回使用者端。

這種架構模式單一,適合並行請求少的情況,但並行量大的時候如何解決?

首先可能想到升級伺服器設定,但硬體的效能提升不能滿足日益增長的需求,此時想到伺服器叢集,增加伺服器數量,然後將原先請求單個伺服器的情況改為將請求分發到多個伺服器上,將負載分發到多個伺服器上,也就是我們講的

四、動靜分離

為了加快網站的解析速度,可以把動態頁面和靜態頁面有不同的伺服器來解析,減少伺服器壓力,加快解析速度。

五、原理

mater&worker

master接收訊號後將任務分配給worker進行執行,worker可有多個。

六、worker如何工作

使用者端傳送一個請求到master後,worker獲取任務的機制不是直接分配也不是輪詢,而是一種爭搶的機制,“搶”到任務後再執行任務,即選擇目標伺服器tomcat等,然後返回結果。

worker_connection

傳送請求佔用了woker兩個或四個連線數。

  • 普通的靜態存取最大並行數是:worker_connections *worker_processes/ 2 /2/2
  • 若是 HTTP 作 為反向代理來說,最大並行數量應該是 worker_connections *worker_processes/ 4 /4/4

當然了,worker數也不是越多越好,worker數和伺服器的CPU數相等時最適宜的。

優點:

  • 可以使用 nginx –s reload 熱部署,利用 nginx 進行熱部署操作
  • 每個 woker 是獨立的程序,若其中一個woker出現問題,其他繼續進行爭搶,實現請求過程,不會造成服務中斷

到此這篇關於Nginx的基本概念和原理的文章就介紹到這了,更多相關Nginx概念和原理內容請搜尋it145.com以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援it145.com!


IT145.com E-mail:sddin#qq.com