前言
Chapter01 原始程式分析的準備工作
1.1 主要特性
1.2 原始程式下載 ?
1.3 原始程式目錄結構 ?
1.4 原始程式分析工具
1.5 測試輔助工具 ?
1.6 編譯與執行 ?
1.7 其他準備
Chapter02 追蹤與偵錯
2.1 利用gdb 偵錯 ?
2.1.1 綁定Nginx 到gdb ?
2.1.2 gdb 的watch 指令 ?
2.1.3 Nginx 對gdb 的支援 ?
2.1.4 巨集
2.1.5 cgdb ?
2.2 利用記錄檔資訊追蹤Nginx ?
2.3 利用strace/pstack 偵錯Nginx ?
2.4 獲得Nginx 程式完整執行流程
2.5 額外偵錯 ?
2.6 特殊應用邏輯的偵錯
Chapter03 處理程序模型
3.1 整體架構 ?
3.2 核心處理程序模型
3.2.1 監控處理程序 ?
3.2.2 工作處理程序
3.3 Cache 處理程序模型 ?
3.3.1 Cache 管理處理程序
3.3.2 Cache 載入處理程序 ?
3.4 處理程序通訊
3.5 共用記憶體 ?
3.6 slab 機制 ?
3.7 訊號處理
3.7.1 準備工作
3.7.2 設定生效
3.7.3 處理實例
Chapter04 資料結構
4.1 記憶體池 ?
4.2 Hash
4.3 Radix tree
Chapter05 設定解析
5.1 設定檔格式 ?
5.2 設定項目解析準備 ?
5.3 設定檔解析流程 ?
5.4 設定資訊組織結構 ?
5.5 設定資訊的繼承
Chapter06 模組綜述
6.1 Handler 模組 ?
6.2 Filter 模組 ?
6.3 Upstream 模組 ?
6.4 Load-balance 模組
Chapter07 事件管理機制
7.1 I/O 多工模型
7.2 epoll 模型 ?
7.3 事件處理 ?
7.4 負載平衡 ?
7.4.1 用戶端請求均衡 ?
7.4.2 核心綁定
7.5 逾時管理
Chapter08 變數機制
8.1 初識變數
8.2 支撐機制 ?
8.3 指令稿引擎
8.4 執行順序
Chapter09 請求處理與回應
9.1 建立監聽Socket 埠 ?
9.2 建立連接Socket 埠 ?
9.3 請求處理
9.4 資料回應
9.5 子請求 ?
9.6 連接關閉 ?
9.6.1 keepalive 機制 ?
9.6.2 延遲關閉機制
Chapter10 請求定位
10.1 Location 的產生
10.2 Location 的整理 ?
10.3 Server 的定位 ?
10.4 Location 的定位與使用 ?
10.5 未命名location 的使用 ?
10.6 try_file s 指令
Chapter11 動態頁面請求處理
11.1 測試環境
11.2 用戶端發起PHP 請求 ?
11.3 請求轉發 ?
11.3.1 建立連接 ?
11.3.2 發送請求資料
11.4 資料回應 ?
11.4.1 接收並處理Fastcgi 回應標頭 ?
11.4.2 接收並發送Fastcgi 回應本體
Chapter12 過濾模組
12.1 ngx_http_not_modified_filter_module ?
12.1.1 304 狀態碼 ?
12.1.2 412 狀態碼
12.2 ngx_http_headers_filter_module ?
12.2.1 HTTP 快取功能的擴充
12.2.2 增加自訂回應標頭 ?
12.3 ngx_http_gzip_filter_module ?
12.4 ngx_http_range_filter_module ?
Chapter13 負載平衡
13.1 負載平衡策略 ?
13.2 加權輪詢 ?
13.2.1 準備工作
13.2.2 選擇後端伺服器 ?
13.2.3 後端伺服器權值計算 ?
13.2.4 釋放後端伺服器 ?
13.3 IP 雜湊
13.3.1 選擇後端伺服器 ?
13.4 兩種策略比較
Chapter14 存取控制
14.1 禁止指定IP 存取 ?
14.2 密碼認證存取 ?
14.3 其他存取控制措施
14.3.1 禁止使用者透過IP 位址存取伺服器 ?
14.3.2 禁止對某目錄或某類別檔案的存取
附錄A ?
附錄B ?
附錄C