Nginx原始碼結構

2021-09-25 00:15:01 字數 1983 閱讀 1328

上一章對nginx的架構有了乙個初步的了解。這章,為了對原始碼仔細的剖析,先要對nginx的原始碼結構有乙個了解。從巨集觀上把握原始碼模組的結構。

一.nginx原始碼的3個目錄結構

在安裝的nginx的目錄下,有乙個目錄src,這裡邊存放了nginx的所有源**,包括:core,event, http, mail,misc,os

其中1)mai目錄中存放了實現nginx伺服器的郵件服務的原始碼,主要實現對郵件服務依賴的資料結構的定義和初始化,像smtp, pop3, imap, ssl的支援

2)misc目錄中存放了兩個檔案:ngx_cpp_test_module.cpp檔案實現的功能是測試程式中引用的標頭檔案是否與c++相容;

ngx_google_perftools_module.c檔案是用來支援google pertools的使用的。

3)os目錄其中包含乙個unix目錄,存放的是針對「類unix系統「,像solaris等情況;

4)core目錄,event目錄,http目錄是重點;

####三個目錄簡單的情況####

(1)core目錄

這個目錄中存放了nginx的關鍵資料結構和核心原始碼實現

在這個目錄中還包括ngx_cycle.*檔案, ngx_log.*檔案, ngx_string.*檔案,ngx_array.*, ngx_list.*, ngx_hash.*等和一些重要的記憶體管理的原始碼。

(2)event目錄

這個目錄裡包含nginx伺服器的事件驅動模型,實現了nginx伺服器的訊息機制。在modules目錄下包括:aio, epoll, kqueue, rtsig等。

(3)http目錄

該目錄下的原始碼為nginx伺服器提供了web服務提供了主要支援。

二.nginx原始碼的模組化結構

為了使清楚的了解nginx的原始碼結構,分成了8個模組;

(1)公共功能部分

(2)記憶體管理

這部分實現了nginx伺服器的記憶體管理,包括記憶體池的管理,公共記憶體的分配,快取區的管理等

(3)事件驅動

(4)日誌管理

(5)http服務

(6)mail服務

(7)模組支援

綜上,把nginx的基本原始碼用圖形的形式表示出來,可以更加清楚了解結構。

參考《nginx高效能web伺服器詳解》

nginx原始碼分析 從原始碼看nginx框架總結

nginx原始碼總結 1 中沒有特別繞特別彆扭的編碼實現,從變數的定義呼叫函式的實現封裝,都非常恰當,比如從函式命名或者變數命名就可以看出來定義的大體意義,函式的基本功能,再好的架構實現在編碼習慣差的人實現也會黯然失色,如果透徹理解 的實現,領悟架構的設計初衷,覺得每塊 就想經過耐心雕琢一樣,不僅僅...

nginx原始碼安裝

nginx原始碼安裝 安裝環境 作業系統 ubuntu 12.04 nginx v1.4.2 pcre v8.33 zlib v1.2.8 1.安裝zlib 1 解壓縮 plain tdtc100 ubuntu tar zxvf zlib 1.2.8.tar.gz 2 安裝 plain tdtc10...

Nginx原始碼安裝

解壓 tar zxvf nginx 1.10.0.tar.gz 執行下面的命令安裝nginx的依賴庫 yum y install gcc pcre pcre devel zlib zlib devel openssl openssl devel我這裡只配置安裝到 opt目錄下,其它選項可執行.con...