Nginx源碼結構


上一章對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服務器詳解》


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM