(engine x)是一個高效能的HTTP和反向代理web伺服器,同時也提供了IMAP/POP3/SMTP服務。其特點是佔有記憶體少,並發能力強,事實上nginx
的並發能力在同類型的網頁伺服器中表現較好,中國大陸使用nginx網站使用者有:百度、京東、新浪、網易、騰訊、淘寶等。
Nginx專為效能最佳化而開發,效能是器最重要的考量,實現上非常注重效率,能經受高負載的考驗,據報告能支援高達50,000個並發連線數。
Nginx不僅能做反向代理,實現負載平衡;還能作正向代理來進行上網等功能。
透過設定代理伺服器,客戶端(瀏覽器)可以使用代理伺服器去存取網際網路。代理對像是客戶端,不知道服務端是誰。
客戶端不需要任何設定就能訪問,只需要將請求傳送到反向代理伺服器,由反向代理伺服器去選擇目標伺服器,取得資料後再返回給客戶端。外界只能存取反向代理伺服器位址,而真實伺服器的IP位址則被隱藏。代理對像是服務端,不知道客戶端是誰。
伺服器會處理客戶端發送的多個請求,有些請求可能需要存取資料庫,最終伺服器會在處理完畢後將結果傳回給客戶端。
這種架構模式單一,適合併發請求少的情況,但並發量大的時候如何解決?
首先可能想到升級伺服器配置,但硬體的性能提升不能滿足日益增長的需求,此時想到伺服器集群,增加伺服器數量,然後將原先請求單個伺服器的情況改為將請求分發到多個伺服器上,將負載分發到多個伺服器上,也就是我們講的
#為了加速網站解析速度,可以使用不同的伺服器來分別解析動態頁面和靜態頁面,從而減少伺服器的負擔,加快解析速度。
mater&worker
master
接收訊號後將任務指派給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的基本概念和原則是什麼的詳細內容。更多資訊請關注PHP中文網其他相關文章!