我下載的nginx源碼版本不可考,按日期來看是2015年7月的最新版本。解壓包獲得源碼檔案夾,進入根目錄發現有幾個子目錄:auto、conf、contrib、docs、misc、src。從字面上猜測,是自動機或指令碼(auto script)、設定檔(configuration)、支援檔案(contributions)、文檔(document)、雜項(miscellaneous)、源碼(source code)。
1、瀏覽源碼檔案夾根目錄
按照慣例,我選擇先看看文檔,但是doc子目錄裡並沒有詳細的離線文檔,只有nginx官網的連結和一些看不懂的小檔案。
雜項misc裡也只有看不太懂的一個GNUmakefile和一個README檔案。
contrib子目錄裡有一個geo2nginx.pl(geo模組的CSV資料庫格式轉換perl指令碼),一套編碼轉換檔(包括兩個編碼映射表和一個編碼轉換perl指令碼),和vim的nginx專用文法高亮設定檔。
conf子目錄裡有幾個編碼映射表、變數映射表和一個伺服器設定檔。
auto子目錄裡有包括伺服器安裝指令碼在內的許多指令碼,現在看指令碼還比較吃力,所以只簡單瀏覽一下。我們發現nginx支援很多主流的作業系統平台:蘋果的開源系統darwin、重要的Unix分支freebsd、linux、大多數版本已經開源的又一個Unix分支solaris、使用者佔有率最高的win32。
src子目錄果然都是需要研究的nginx的C源碼,下面我們會深入瀏覽。
2、瀏覽src子目錄
還是來看一下src子目錄下有哪些子目錄:core、event、http、mail、misc、mysql、os、stream。還是來按照字面意思猜測一下:核心(主函數、資料結構、主要方法)、事件(事件處理機制)、超文字傳輸通訊協定 (HTTP)(http相關)、郵件(郵件相關)、雜項(google perftools相關源碼)、mysql資料庫、作業系統(Unix和Win32兩類系統的系統調用程式源碼)、流(意義不明)。看起來./src/core子目錄對研究源碼來說是一個不錯的開始。
圖2 nginx源碼檔案結構圖
著作權聲明:本文為博主原創文章,未經博主允許不得轉載。
以上就介紹了nginx源碼檔案結構瀏覽,包括了方面的內容,希望對PHP教程有興趣的朋友有所協助。