# nginx架構詳解[](http://tengine.taobao.org/book/chapter_09.html#nginx-50 "永久鏈接至標題")
nginx的下篇將會更加深入的介紹nginx的實現原理。上一章,我們了解到了如何設計一個高性能服務器,那這一章將會開始講解,nginx是如何一步一步實現高性能服務器的。
### nginx的源碼目錄結構[](http://tengine.taobao.org/book/chapter_09.html#nginx-100 "永久鏈接至標題")
nginx的優秀除了體現在程序結構以及代碼風格上,nginx的源碼組織也同樣簡潔明了,目錄結構層次結構清晰,值得我們去學習。nginx的源碼目錄與nginx的模塊化以及功能的劃分是緊密結合,這也使得我們可以很方便地找到相關功能的代碼。這節先介紹nginx源碼的目錄結構,先對nginx的源碼有一個大致的認識,下節會講解nginx如何編譯。
下面是nginx源碼的目錄結構:
.
├── 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的支持
└── os 主要是對各種不同體系統結構所提供的系統函數的封裝,對外提供統一的系統調用接口
- 上篇:nginx模塊開發篇
- nginx平臺初探
- 初探nginx架構
- nginx基礎概念
- connection
- request
- keepalive
- pipe
- lingering_close
- 基本數據結構
- ngx_str_t
- ngx_pool_t
- ngx_array_t
- ngx_hash_t
- ngx_hash_wildcard_t
- ngx_hash_combined_t
- ngx_hash_keys_arrays_t
- ngx_chain_t
- ngx_buf_t
- ngx_list_t
- ngx_queue_t
- nginx的配置系統
- 指令參數
- 指令上下文
- nginx的模塊化體系結構
- 模塊的分類
- nginx的請求處理
- handler模塊
- handler模塊簡介
- 模塊的基本結構
- 模塊配置結構
- 模塊配置指令
- 模塊上下文結構
- 模塊的定義
- handler模塊的基本結構
- handler模塊的掛載
- handler的編寫步驟
- 示例: hello handler 模塊
- handler模塊的編譯和使用
- 更多handler模塊示例分析
- http access module
- http static module
- http log module
- 過濾模塊
- 過濾模塊簡介
- 過濾模塊的分析
- upstream模塊
- upstream模塊
- upstream模塊接口
- memcached模塊分析
- 本節回顧
- 負載均衡模塊
- 配置
- 指令
- 鉤子
- 初始化配置
- 初始化請求
- peer.get和peer.free回調函數
- 本節回顧
- 其他模塊
- core模塊
- event模塊
- 模塊開發高級篇
- 變量
- 下篇:nginx原理解析篇
- nginx架構詳解
- nginx的源碼目錄結構
- nginx的configure原理
- 模塊編譯順序
- nginx基礎設施
- 內存池
- nginx的啟動階段
- 概述
- 共有流程
- 配置解析
- nginx的請求處理階段
- 接收請求流程
- http請求格式簡介
- 請求頭讀取
- 解析請求行
- 解析請求頭
- 請求體讀取
- 讀取請求體
- 丟棄請求體
- 多階段處理請求
- 多階段執行鏈
- POST_READ階段
- SERVER_REWRITE階段
- FIND_CONFIG階段
- REWRITE階段
- POST_REWRITE階段
- PREACCESS階段
- ACCESS階段
- POST_ACCESS階段
- TRY_FILES階段
- CONTENT階段
- LOG階段
- Nginx filter
- header filter分析
- body filter分析
- ngx_http_copy_filter_module分析
- ngx_http_write_filter_module分析
- subrequest原理解析
- https請求處理解析
- 附錄A 編碼風格
- 附錄B 常用API
- 附錄C 模塊編譯,調試與測試