第1章 Nginx初探 1
1.1 Nginx的曆史 1
1.2 常見服務器産品介紹 2
1.2.1 Apache服務器 2
1.2.2 Microsoft IIS 3
1.2.3 Tomcat服務器 3
1.2.4 Lighttpd服務器 4
1.2.5 Nginx誕生記 4
1.2.6 版本變更大事記 5
1.3 Nginx的功能特性 5
1.3.1 基本HTTP服務 6
1.3.2 高級HTTP服務 6
1.3.3 郵件代理服務 7
1.4 常用功能介紹 7
1.4.1 HTTP代理和反嚮代理 7
1.4.2 負載均衡 7
1.4.3 Web緩存 8
1.5 本章小結 9
第2章 Nginx服務器的安裝部署 10
2.1 如何獲取Nginx服務器安裝文件 10
2.1.1 獲取新版本的Nginx服務器 11
2.1.2 獲取Nginx服務器的曆史版本 11
2.2 安裝Nginx服務器和基本配置 12
2.2.1 Windows版本的安裝 12
2.2.2 Linux版本的編譯和安裝:準備工作 13
2.2.3 Linux版本的編譯和安裝:Nginx軟件的自動腳本 14
2.2.4 Linux版本的編譯和安裝:Nginx源代碼的編譯和安裝 18
2.3 Nginx服務的啓停控製 21
2.3.1 Nginx服務的信號控製 21
2.3.2 Nginx服務的啓動 22
2.3.3 Nginx服務的停止 23
2.3.4 Nginx服務的重啓 23
2.3.5 Nginx服務器的升級 24
2.4 Nginx服務器基礎配置指令 24
2.4.1 nginx.conf文件的結構 25
2.4.2 配置運行Nginx服務器用戶(組) 28
2.4.3 配置允許生成的worker process數 28
2.4.4 配置Nginx進程PID存放路徑 29
2.4.5 配置錯誤日誌的存放路徑 29
2.4.6 配置文件的引入 30
2.4.7 設置網絡連接的序列化 30
2.4.8 設置是否允許同時接收多個網絡連接 30
2.4.9 事件驅動模型的選擇 30
2.4.10 配置最大連接數 31
2.4.11 定義MIME-Type 31
2.4.12 自定義服務日誌 32
2.4.13 配置允許sendfile方式傳輸文件 33
2.4.14 配置連接超時時間 33
2.4.15 單連接請求數上限 34
2.4.16 配置網絡監聽 34
2.4.17 基於名稱的虛擬主機配置 35
2.4.18 基於IP的虛擬主機配置 36
2.4.19 配置location塊 38
2.4.20 配置請求的根目錄 39
2.4.21 更改location的URI 39
2.4.22 設置網站的默認首頁 40
2.4.23 設置網站的錯誤頁麵 40
2.4.24 基於IP配置Nginx的訪問權限 42
2.4.25 基於密碼配置Nginx的訪問權限 43
2.5 Nginx服務器基礎配置實例 43
2.5.1 測試myServer1的訪問 46
2.5.2 測試myServer2的訪問 46
2.6 本章小結 47
第3章 Nginx服務器架構初探 48
3.1 模塊化結構 48
3.1.1 什麼是“模塊化設計” 48
3.1.2 Nginx模塊化結構 49
3.2 Nginx服務器的Web請求處理機製 54
3.2.1 多進程方式 54
3.2.2 多綫程方式 55
3.2.3 異步方式 55
3.2.4 Nginx服務器如何處理請求 56
3.2.5 Nginx服務器的事件處理機製 57
3.3 Nginx服務器的事件驅動模型 57
3.3.1 事件驅動模型概述 57
3.3.2 Nginx中的事件驅動模型 58
3.3.3 select庫 59
3.3.4 poll庫 59
3.3.5 epoll庫 60
3.3.6 rtsig模型 60
3.3.7 其他事件驅動模型 61
3.4 設計架構概覽 61
3.4.1 Nginx服務器架構 62
3.4.2 Nginx服務器的進程 63
3.4.3 進程交互 64
3.4.4 Run Loops事件處理循環模型 64
3.5 本章小結 65
第4章 Nginx服務器的高級配置 67
4.1 針對IPv4的內核7個參數的配置優化 67
4.2 針對CPU的Nginx配置優化的2個指令 68
4.3 與網絡連接相關的配置的4個指令 70
4.4 與事件驅動模型相關的配置的8個指令 71
4.5 本章小結 73
第5章 Nginx服務器的Gzip壓縮 74
5.1 由ngx_http_gzip_module模塊處理的9個指令 74
5.2 由ngx_http_gzip_static_module模塊處理的指令 78
5.3 由ngx_http_gunzip_module模塊處理的2個指令 79
5.4 Gzip壓縮功能的使用 80
5.4.1 Gzip壓縮功能綜閤配置實例 80
5.4.2 Gzip壓縮功能與IE6瀏覽器運行腳本的兼容問題 82
5.4.3 Nginx與其他服務器交互時産生的Gzip壓縮功能相關問題 83
5.5 本章小結 84
第6章 Nginx服務器的Rewrite功能 85
6.1 Nginx後端服務器組的配置的5個指令 85
6.2 Rewrite功能的配置 88
6.2.1 “地址重寫”與“地址轉發” 88
6.2.2 Rewrite規則 89
6.2.3 if指令 89
6.2.4 break指令 91
6.2.5 rewrite指令 92
6.2.6 rewrite_log指令 94
6.2.7 set指令 94
6.2.8 uninitialized_variable_warn指令 94
6.2.9 Rewrite常用全局變量 94
6.3 Rewrite的使用 95
6.3.1 域名跳轉 95
6.3.2 域名鏡像 96
6.3.3 獨立域名 97
6.3.4 目錄自動添加“/” 98
6.3.5 目錄閤並 99
6.3.6 防盜鏈 99
6.4 本章小結 101
第7章 Nginx服務器的代理服務 102
7.1 正嚮代理與反嚮代理的概念 102
7.2 Nginx服務器的正嚮代理服務 104
7.2.1 Nginx服務器正嚮代理服務的配置的3個指令 104
7.2.2 Nginx服務器正嚮代理服務的使用 105
7.3 Nginx服務器的反嚮代理服務 105
7.3.1 反嚮代理的基本設置的21個指令 106
7.3.2 Proxy Buffer的配置的7個指令 113
7.3.3 Proxy Cache的配置的12個指令 115
7.4 Nginx服務器的負載均衡 119
7.4.1 什麼是負載均衡 120
7.4.2 Nginx服務器負載均衡配置 120
7.4.3 配置實例一:對所有請求實現一般輪詢規則的負載均衡 120
7.4.4 配置實例二:對所有請求實現加權輪詢規則的負載均衡 121
7.4.5 配置實例三:對特定資源實現負載均衡 121
7.4.6 配置實例四:對不同域名實現負載均衡 122
7.4.7 配置實例五:實現帶有URL重寫的負載均衡 123
7.5 本章小結 124
第8章 Nginx服務器的緩存機製 125
8.1 Web緩存技術簡述 125
8.2 404錯誤驅動Web緩存 126
8.3 資源不存在驅動Web緩存 127
8.4 基於memcached的緩存機製的6個指令 128
8.5 Proxy Cache緩存機製 130
8.6 Nginx與Squid組閤 133
8.6.1 Squid服務器的配置 133
8.6.2 Nginx服務器的配置 133
8.7 基於第三方模塊ncache的緩存機製 134
8.8 本章小結 134
第9章 Nginx服務器的郵件服務 135
9.1 郵件服務 135
9.2 Nginx郵件服務的配置的12個指令 136
9.3 Nginx郵件服務配置實例 140
9.4 本章小結 142
第10章 Nginx源碼結構 143
10.1 Nginx源碼的3個目錄結構 143
10.1.1 core目錄 144
10.1.2 event目錄 144
10.1.3 http目錄 145
10.2 Nginx源碼的模塊化結構 145
10.2.1 公共功能 145
10.2.2 配置解析 146
10.2.3 內存管理 147
10.2.4 事件驅動 147
10.2.5 日誌管理 148
10.2.6 HTTP服務 148
10.2.7 Mail服務 149
10.2.8 模塊支持 150
10.3 本章小結 150
第11章 Nginx基本數據結構 151
11.1 ngx_module_s結構體 151
11.1.1 分類標識ctx_index 152
11.1.2 模塊計數器index 152
11.1.3 模塊上下文 153
11.1.4 迴調函數 153
11.2 ngx_command_s結構體 154
11.2.1 type成員 154
11.2.2 函數指針set 156
11.2.3 conf和offset 156
11.3 3個基本模塊的指令集數組結構 157
11.3.1 http模塊 157
11.3.2 event模塊 158
11.3.3 mail模塊 159
11.4 ngx_ pool_s結構體 160
11.4.1 ngx_pool_data_t結構體 160
11.4.2 ngx_pool_large_s結構體 161
11.4.3 ngx_pool_cleanup_s結構體 161
11.5 Nginx socket相關的數據結構 161
11.5.1 ngx_listening_s結構體 161
11.5.2 ngx_http_conf_port_t結構體 162
11.5.3 ngx_http_conf_addr_t結構體 163
11.6 ngx_event_s結構體 163
11.7 ngx_connection_s結構體 164
11.8 ngx_cycle_s結構體 166
11.9 ngx_conf_s結構體 168
11.9.1 配置上下文*ctx 169
11.9.2 指令類型type 169
11.10 ngx_signal_t結構體 170
11.11 ngx_process_t結構體 172
11.12 本章小結 172
第12章 Nginx的啓動初始化 173
12.1 Nginx啓動過程概覽 173
12.1.1 程序初始化 173
12.1.2 啓動多進程 174
12.2 Nginx的初始化 175
12.2.1 讀取並處理啓動參數 176
12.2.2 繼承socket 185
12.2.3 初始化時間及建立新的cycle結構 187
12.2.4 建立core模塊上下文結構 188
12.2.5 解析配置文件 190
12.2.6 初始化core模塊上下文 196
12.2.7 創建PID文件 199
12.2.8 處理監聽socket 199
12.2.9 信號設置 201
12.2.10 啓動Master Process 203
12.2.11 Nginx初始化過程總結 204
12.3 Nginx的啓動 205
12.3.1 主進程設置信號阻塞 206
12.3.2 設置進程標題 206
12.3.3 啓動工作進程 208
12.3.4 啓動緩存索引重建及管理進程 211
12.3.5 循環處理信號 212
12.3.6 Nginx啓動過程總結 216
12.4 本章小結 217
第13章 Nginx的時間管理 218
13.1 獲取係統時間的一般方法 218
13.1.1 係統調用的開銷 218
13.1.2 gettimeofday() 219
13.2 Nginx時間管理的工作原理 220
13.2.1 時間緩存的更新 220
13.2.2 更新時間緩存的時機 224
13.3 緩存時間的精度 226
13.3.1 設置緩存時間的精度 226
13.3.2 緩存時間精度的控製原理 226
13.4 本章小結 228
第14章 Nginx的內存管理 229
14.1 內存池的邏輯結構 229
14.2 內存池的管理 230
14.2.1 創建內存池 231
14.2.2 銷毀內存池 234
14.2.3 重置內存池 235
14.3 內存的使用 235
14.3.1 申請內存 235
14.3.2 釋放內存 241
14.3.3 迴收內存 241
14.4 本章小結 243
第15章 Nginx工作進程 244
15.1 工作進程概覽 244
15.2 相關源碼分析 245
15.2.1 設置工作進程運行環境 246
15.2.2 監聽和處理進程控製事件 249
15.2.3 接收網絡請求事件 250
15.2.4 執行進程控製 254
15.3 Nginx服務器進程間通信 256
15.3.1 Linux進程間通信方式 256
15.3.2 Linux進程間雙工通信的實現 257
15.3.3 通信通道的建立和設置 257
15.3.4 通信通道的使用 259
15.3.5 消息的讀寫 259
15.4 本章小結 263
第16章 Nginx的模塊編程 264
16.1 模塊的種類 264
16.2 模塊開發實踐 265
16.2.1 “Hello_Nginx”模塊編程實例 265
16.2.2 模塊的結構 268
16.2.3 模塊命名規則 272
16.3 模塊的編譯與安裝 272
16.4 本章小結 274
第17章 Nginx在動態網站建設中的應用實例 275
17.1 Nginx在JSP網站建設中的應用 275
17.1.1 環境描述 275
17.1.2 特彆模塊說明 276
17.1.3 配置方案 276
17.2 Nginx在PHP網站建設中的應用 278
17.2.1 環境描述 278
17.2.2 特彆模塊說明 279
17.2.3 配置方案 280
17.3 Nginx+Perl腳本在網站建設中的應用 281
17.3.1 環境描述 282
17.3.2 特彆模塊說明 282
17.3.3 配置方案 282
17.4 本章小結 285
第18章 Nginx經典應用——LNAMP 286
18.1 LNAMP概述 286
18.2 手動部署和配置 287
18.2.1 環境準備 287
18.2.2 安裝和配置MySQL 288
18.2.3 安裝和配置Apache 289
18.2.4 安裝 PHP 289
18.3 自動安裝 293
18.4 本章小結 293
附錄A Nginx內置變量 294
附錄B 正則錶達式語法 296
· · · · · · (
收起)