深入理解Nginx的 模組化 ,全域性觀

2021-08-19 08:09:30 字數 1878 閱讀 6683

.

├── auto 自動檢測系統環境以及編譯相關的指令碼

│ ├── cc 關於編譯器相關的編譯選項的檢測指令碼

│ ├── lib nginx編譯所需要的一些庫的檢測指令碼

│ ├── os 與平台相關的一些系統引數與系統呼叫相關的檢測

│ └── types 與資料型別相關的一些輔助指令碼

├── conf 存放預設配置檔案,在make install後,會拷貝到安裝目錄中去

├── contrib 存放一些實用工具,如geo配置生成工具(geo2nginx.pl)

├── html 存放預設的網頁檔案,在make install後,會拷貝到安裝目錄中去

├── man nginx的man手冊

└── src 存放nginx的源**

├── core nginx的核心源**,包括常用資料結構的定義,以及nginx初始化執行的核心**如main函式

├── event 對系統事件處理機制的封裝,以及定時器的實現相關**

│ └── modules 不同事件處理方式的模組化,如select、poll、epoll、kqueue等

├── http nginx作為http伺服器相關的**

│ └── modules 包含http的各種功能模組

├── mail nginx作為郵件**伺服器相關的**

├── misc 一些輔助**,測試c++頭的相容性,以及對google_perftools的支援

|—— stream nginx支援傳輸層的 協議:如tcp、udp協議,uninx域socket。這個模組是在nginx1.9以後版本才有的。

└── os 主要是對各種不同體系統結構所提供的系統函式的封裝,對外提供統一的系統呼叫介面。

2.phase handler:此型別模組也被直接稱為handler模組,主要負責處理客戶端請求並產生待響應的內容,比如ngx_http_static_moduler模組,負責客戶端的靜態頁面請求處理並將對應的磁碟 檔案準備為響應內容輸出。

3.output filter:也稱為filter模組,主要 負責處理輸出的內容,包括修改輸出內容,可以實現對輸出的所有的 html的 頁面新增 預定義的footbar一類的工作,或者對輸出的 的url進行替換的 工作。

4.upstream:upstream模組實現反向**,將真正的請求 **到伺服器上,並 從後端伺服器上讀取響應,發回客戶端。upstream模組 是一種特殊的handler,只不過響應內容也不是真正由自己產生的,而是從後端伺服器上讀取的。

5.load-balancer:負載均衡模組,實現特定的 演算法,在 眾多的後端 伺服器中,選擇乙個伺服器出來作為某個請求的**伺服器。

typedef

struct ngx_core_module_t;

2.解析配置檔案時,nginx的各個模組都有機會去接手處理某個請求,但是url請求的模組只能有乙個 。

3.nginx啟動時框架的處理流程 

建議對比這篇部落格一起看

ngnix 的**分析

一深入理解Nginx的 模組化 ,全域性觀

auto 自動檢測系統環境以及編譯相關的指令碼 cc 關於編譯器相關的編譯選項的檢測指令碼 lib nginx編譯所需要的一些庫的檢測指令碼 os 與平台相關的一些系統引數與系統呼叫相關的檢測 types 與資料型別相關的一些輔助指令碼 conf 存放預設配置檔案,在make install後,會拷...

三 深入理解Nginx的模組化 (結合原始碼詳解)

盜用前面用到的流程圖 第二步實際上是呼叫ngx add inherited sockets 檔名 nginx.c int ngx cdecl main int argc,char const argv nginx在不重啟服務公升級,舊版本的master程序會通過execve系統呼叫來啟動新版本的ma...

深入理解nginx

1.檢視核心版本 因為2.6以上的核心才支援epoll,nginx的高併發的特性依賴epoll uname a linux com.guang 3.10.0 514.16.1.el7.x86 64 1 smp wed apr 12 15 04 24 utc 2017 x86 64 x86 64 x8...