這不是一本關於Nginx 設定指令如何使用的介紹手冊,那些內容在Nginx 官網上有專門的說明文件,甚至有對應的中文翻譯。本書重點在於解析Nginx 的內部實現原理。
從原始程式碼剖析的角度出發,是程式師常用的學習和提高方法。本書是作者多年研讀Nginx代碼、深入思考和不斷實踐的結晶,希望透過剖析Nginx的原始程式碼,探究其功能結構及其內部實現原理。
作者介紹
作者簡介
高凱群
電腦碩士,接觸Linux等自由/開源軟體已有11年,在技術領域的興趣主要包括Linux、高性能服務(如Lighttpd、Nginx、Apache、Mongodb等),以及x86、MIPS(Cavium、RMI、Tilera)等,專職從事Linux相關研究。個人微博:lenky.info/
高凱群
電腦碩士,接觸Linux等自由/開源軟體已有11年,在技術領域的興趣主要包括Linux、高性能服務(如Lighttpd、Nginx、Apache、Mongodb等),以及x86、MIPS(Cavium、RMI、Tilera)等,專職從事Linux相關研究。個人微博:lenky.info/
目錄
前言
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
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
網路書店
類別
折扣
價格
-
新書81折$395
-
新書85折$417
-
新書9折$441