.
├── 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...