Nginx 之 Nginx概念介紹

1  概述


Nginx (engine x)分爲開源和商業版,是單進程響應用戶的併發請求,沒有線程的概念,特點是有很多模塊組成的。處理靜態頁面時http10倍效率,可以實現30000的併發進程,http一般是隻能達到10000的併發。二次開發版本有Tengine OpenResty,官網是http://nginx.org

 本文將介紹nginx的特性,功能和相關模塊


2  概念介紹


2.1  nginx架構圖

nginx的程序是master/worker結構

.一個master進程:負載加載和分析配置文件、管理worker進程、平滑升級

.一個或多個worker進程:處理並響應用戶請求

.緩存相關的進程:

cache loader:載入緩存對象

cache manager:管理緩存對象

架構圖如下

1240

2.2  nginx特性

.模塊化設計,較好的擴展性

.高可靠性

.支持熱部署:不停機更新配置文件,升級版本,更換日誌文件

.低內存消耗:10000keep-alive連接模式下的非活動連接,僅需要2.5M內存

.支持event-driven,aio,mmapsendfile

2.3  nginx功能 

2.3.1  基本功能:

.靜態資源的高性能web服務器,處理html,圖片,jscsstxt等靜態資源

. tcp/udp協議反向代理服務器:實現三個功能,一、負載均衡,相當於調度器,轉發數據到後端服務器,實現LVS一樣的功能,二、客戶端沒有直接接觸服務器,更加安全。三、緩存,可以加速訪問。

. IMAP/POP3/SMTP協議反向代理服務器

. 通用的TCP/ UDP代理服務器

. 結合FastCGI/uWSGI/SCGI等協議反向代理動態資源請求

.模塊化(非DSO),如zipSSL模塊

2.3.2  nginx web服務相關的功能

1)虛擬主機(server

2)支持keep-alive和管道連接

3)訪問日誌(支持基於日誌緩衝提高其性能)

4)url rewirte

5)路徑別名

6)基於IP及用戶的訪問控制

7)支持速率限制及併發數限制

8)MemcachedGET 接口

9)重新配置和在線升級而無須中斷客戶的工作進程,比如升級過程,舊的主進程會被關掉,同時開啓一個新版本的主進程。但是,舊的子進程不受影響,會繼續處理舊的請求,直到把舊請求處理完成才關掉該舊子進程。此時新版本的主進程會開啓新的子進程,用來接收新的請求,實現了平滑過渡。

2.4  nginx模塊

.nginx高度模塊化,模塊表現爲各種文件,但其模塊早期不支持DSO機制;1.9.11版本支持動態裝載和卸載

.模塊分類:三大類

a)核心模塊:coremodule

b)標準模塊:分爲三類

1HTTP 模塊:ngx_http_*

             HTTP Core modules 默認功能

             HTTP Optional  modules 需編譯時指定

          2Mail模塊ngx_mail_*

3Stream 模塊ngx_stream_*

c)第三方模塊



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章