-
>
全國計算機等級考試最新真考題庫模擬考場及詳解·二級MSOffice高級應用
-
>
決戰行測5000題(言語理解與表達)
-
>
軟件性能測試.分析與調優實踐之路
-
>
第一行代碼Android
-
>
JAVA持續交付
-
>
EXCEL最強教科書(完全版)(全彩印刷)
-
>
深度學習
NGINX完全開發指南:使用C.C++.JAVASCRIPT和LUA 版權信息
- ISBN:9787121364365
- 條形碼:9787121364365 ; 978-7-121-36436-5
- 裝幀:一般膠版紙
- 冊數:暫無
- 重量:暫無
- 所屬分類:>>
NGINX完全開發指南:使用C.C++.JAVASCRIPT和LUA 本書特色
Nginx是著名的Web服務器,性能優異,運行效率遠超傳統的Apache、Tomcat,廣泛應用于國內外諸多*互聯網公司。Nginx的一個突出特點是其靈活優秀的模塊化架構,可以在不修改核心的前提下增加任意功能,自2004年發布至今,已經擁有百余個官方及非官方的功能模塊(如proxy、mysql、redis、rtmp、lua等),使得Nginx成長為了一個近乎“全能”的服務器軟件。Nginx功能強大,架構復雜,學習、維護和開發的門檻較高。為了幫助讀者跨越這一障礙,本書深入*的Nginx源碼(Stable 1.16.0),詳細剖析了模塊體系、動態插件、功能框架、內存分配、進程模型、事件驅動、線程池、TCP/UDP/HTTP處理等Nginx核心運行機制,在此基礎上講解如何使用C、C 、JavaScript、Lua等語言來增強擴展Nginx,讓任何人都能夠便捷、輕松地開發和定制Nginx,進而應用到自己的實際工作中,創造出更多的價值。本書結構嚴謹、脈絡清晰、論述精確、詳略得當、圖文并茂,值得廣大軟件開發工程師、系統運維工程師和編程愛好者擁有。
NGINX完全開發指南:使用C.C++.JAVASCRIPT和LUA 內容簡介
Nginx是有名的Web服務器,性能優異,運行效率遠超傳統的Apache、Tomcat,廣泛應用于靠前外諸多很好互聯網公司。Nginx的一個突出特點是其靈活很好的模塊化架構,可以在不修改核心的前提下增加任意功能,自2004年發布至今,已經擁有百余個官方及非官方的功能模塊(如proxy、mysql、redis、rtmp、lua等),使得Nginx成長為了一個近乎“”的服務器軟件。Nginx功能強大,架構復雜,學習、維護和開發的門檻較高。為了幫助讀者跨越這一障礙,本書深入很新的Nginx源碼(Stable 1.16.0),詳細剖析了模塊體系、動態插件、功能框架、內存分配、進程模型、事件驅動、線程池、TCP/UDP/HTTP處理等Nginx核心運行機制,在此基礎上講解如何使用C、C++、JavaScript、Lua等語言來增強擴展Nginx,讓任何人都能夠便捷、輕松地開發和定制Nginx,進而應用到自己的實際工作中,創造出更多的價值。本書結構嚴謹、脈絡清晰、論述準確、詳略得當、圖文并茂,值得廣大軟件開發工程師、系統運維工程師和編程愛好者擁有。
NGINX完全開發指南:使用C.C++.JAVASCRIPT和LUA 目錄
第0章 導讀 1
0.1 于本書 1
0.2 讀者對象 3
0.3 讀者要求 4
0.4 運行環境 5
0.5 本書的結構 5
0.6 如何閱讀本書 6
0.7 本書的源碼 7
第1章 Nginx入門 8
1.1 關于Nginx 8
1.1.1 歷史 9
1.1.2 特點 9
1.1.3 進程模型 10
1.1.4 版本 12
1.2 安裝Nginx 12
1.2.1 準備工作 13
1.2.2 快速安裝 13
1.2.3 運行命令 14
1.2.4 驗證安裝 15
1.2.5 定制安裝 16
1.3 配置Nginx 18
1.3.1 語法格式 19
1.3.2 進程管理 20
1.3.3 動態模塊 22
1.3.4 運行日志 22
1.3.5 事件機制 22
1.4 HTTP服務 23
1.4.1 基本配置 24
1.4.3 location配置 25
1.4.4 file配置 26
1.5 TCP/UDP服務 27
1.6 反向代理 28
1.6.1 上游集群 28
1.6.2 負載均衡 29
1.6.3 代理轉發 30
1.7 變量 30
1.8 總結 32
第2章 Nginx開發準備 33
2.1 源碼結構 33
2.2 源碼特點 34
2.2.1 代碼風格 34
2.2.2 代碼優化 35
2.2.3 面向對象思想 35
2.3 頭文件 36
2.4 總結 36
第3章 Nginx基礎設施 37
3.1 常數 37
3.1.1 環境信息 37
3.1.2 版本信息 38
3.1.3 錯誤碼 38
3.2 整數類型 39
3.2.1 標準整數類型 39
3.2.2 自用整數類型 40
3.2.3 無效值 40
3.3 內存池 42
3.3.1 結構定義 42
3.3.2 操作函數 43
3.3.3 用法示例 44
3.4 字符串 44
3.4.1 結構定義 44
3.4.2 操作函數 45
3.4.3 用法示例 48
3.5 時間 49
3.5.1 結構定義 49
3.5.2 操作函數 49
3.5.3 用法示例 50
3.6 日期 50
3.6.1 結構定義 50
3.6.2 操作函數 51
3.6.3 用法示例 52
3.7 運行日志 52
3.7.1 結構定義 52
3.7.2 操作函數 53
3.7.3 用法示例 54
3.8 摘要算法 54
3.8.1 Times33 55
3.8.2 CRC 55
3.8.3 MurmurHash 56
3.8.4 MD5 57
3.8.5 SHA-1 57
3.9 數據編碼 58
3.9.1 Base64 58
3.9.2 HTML/JSON 59
3.10 總結 60
第4章 Nginx高級數據結構 61
4.1 動態數組 61
4.1.1 結構定義 62
4.1.2 操作函數 63
4.1.3 用法示例 64
4.2 單向鏈表 65
4.2.1 結構定義 65
4.2.2 操作函數 66
4.2.3 用法示例 66
4.3 雙端隊列 68
4.3.1 結構定義 68
4.3.2 操作函數 69
4.3.3 用法示例 71
4.4 紅黑樹 72
4.4.1 結構定義 73
4.4.2 操作函數 75
4.4.3 用法示例 76
4.5 緩沖區 78
4.5.1 結構定義 78
4.5.2 操作函數 80
4.5.3 用法示例 81
4.6 數據塊鏈 82
4.6.1 結構定義 82
4.6.2 操作函數 83
4.6.3 用法示例 83
4.7 總結 84
第5章 Nginx開發概述 85
5.1 開發示例 85
5.1.1 模塊設計 85
5.1.2 配置解析 86
5.1.3 處理函數 88
5.1.4 模塊集成 90
5.1.5 編譯腳本 91
5.1.6 測試驗證 92
5.2 開發流程 92
5.2.1 設計 93
5.2.2 開發 93
5.2.3 編譯 94
5.2.4 測試驗證 94
5.2.5 調優 94
5.2.6 流程圖 95
5.3 編譯腳本 95
5.3.1 運行機制 96
5.3.2 腳本變量 96
5.3.3 添加模塊 97
5.3.4 腳本格式 97
5.3.5 舊式腳本 98
5.4 總結 99
第6章 Nginx模塊體系 100
6.1 模塊架構 100
6.1.1 結構定義 100
6.1.2 模塊的簽名 102
6.1.3 模塊的種類 103
6.1.4 模塊的函數指針表 104
6.1.5 模塊的類圖 105
6.1.6 模塊的組織形式 106
6.1.7 模塊的靜態加載 108
6.1.8 模塊的動態加載 110
6.2 配置解析 113
6.2.1 結構定義 113
6.2.2 基本流程 116
6.2.3 存儲模型 118
6.2.4 訪問配置數據 122
6.2.5 配置數據的位置 123
6.2.6 配置數據的解析 124
6.2.7 配置數據的合并 126
6.2.8 配置指令的類型 127
6.3 源碼分析 128
6.3.1 ngx_core_module 128
6.3.2 ngx_errlog_module 130
6.4 總結 132
第7章 Nginx功能框架 134
7.1 框架簡介 134
7.1.1 模塊分類 134
7.1.2 處理流程 135
7.1.3 請求的處理階段 137
7.1.4 請求結構體 138
7.1.5 請求的環境數據 140
7.2 處理引擎 141
7.2.1 函數原型 141
7.2.2 處理函數的存儲方式 141
7.2.3 內容處理函數 142
7.2.4 引擎的數據結構 143
7.2.5 引擎的初始化 144
7.2.6 引擎的運行機制 145
7.2.7 日志階段的處理 148
7.3 過濾引擎 148
7.3.1 函數原型 148
7.3.2 過濾函數鏈表 149
7.3.3 過濾函數的順序 150
7.3.4 過濾鏈表的運行機制 152
7.3.5 請求體過濾 153
7.4 源碼分析 153
7.4.1 ngx_http_static_module 154
7.4.2 ngx_http_not_modified_filter_module 155
7.5 總結 156
第8章 Nginx請求處理 158
8.1 狀態碼 158
8.2 請求結構體 159
8.3 請求行 160
8.3.1 請求方法 160
8.3.2 協議版本號 161
8.3.3 資源標識符 161
8.4 請求頭 162
8.5 請求體 163
8.5.1 結構定義 163
8.5.2 操作函數 164
8.6 響應頭 164
8.6.1 結構定義 164
8.6.2 操作函數 165
8.7 響應體 166
8.8 源碼分析 166
8.8.1 ngx_http_static_module 166
8.8.2 ngx_http_not_modified_filter_module 168
8.9 開發示例:content handler 169
8.9.1 模塊設計 169
8.9.2 配置數據 169
8.9.3 處理函數 170
8.9.4 注冊函數 171
8.9.5 模塊集成 172
8.9.6 編譯腳本 173
8.9.7 測試驗證 173
8.10 開發示例:filter 173
8.10.1 模塊設計 173
8.10.2 配置數據 174
8.10.3 環境數據 174
8.10.4 注冊過濾函數 175
8.10.5 過濾響應頭 175
8.10.6 過濾響應體 176
8.10.7 模塊集成 178
8.10.8 編譯腳本 179
8.10.9 測試驗證 179
8.11 總結 180
第9章 Nginx請求轉發 181
9.1 框架簡介 181
9.1.1 工作原理 182
9.1.2 請求結構體 183
9.1.3 上游結構體 184
9.1.4 上游配置參數 185
9.2 請求轉發 186
9.2.1 回調函數 186
9.2.2 初始化 188
9.2.3 設置參數 189
9.2.4 啟動連接 190
9.2.5 處理響應頭 190
9.2.6 處理響應體 191
9.3 負載均衡 192
9.3.1 結構定義 192
9.3.2 初始化模塊入口 196
9.3.3 初始化地址列表 197
9.3.4 初始化算法 199
9.3.5 執行算法 200
9.4 源碼分析 200
9.4.1 ngx_http_memcached_module 201
9.4.2 ngx_http_upstream_ip_hash_module 203
9.5 開發示例:upstream 206
9.5.1 模塊設計 206
9.5.2 配置數據 206
9.5.3 上行數據 208
9.5.4 下行數據 208
9.5.5 啟動轉發 209
9.5.6 注冊函數 210
9.5.7 模塊集成 210
9.5.8 編譯腳本 211
9.5.9 測試驗證 212
9.6 開發示例:balance 212
9.6.1 模塊設計 212
9.6.2 配置數據 212
9.6.3 算法數據結構 213
9.6.4 模塊入口 213
9.6.5 算法實現 214
9.6.6 模塊集成 215
9.6.7 編譯腳本 216
9.6.8 測試驗證 216
9.7 總結 216
第10章 Nginx子請求 218
10.1 框架簡介 218
10.1.1 工作原理 219
10.1.2 請求結構體 220
10.1.3 回調函數 221
10.1.4 待處理請求鏈表 223
10.1.5 子請求存儲結構 223
10.2 運行機制 223
10.2.1 創建子請求 224
10.2.2 處理引擎 228
10.2.3 數據整理 229
10.3 開發示例 230
10.3.1 模塊設計 231
10.3.2 配置數據 231
10.3.3 環境數據 231
10.3.4 回調函數 231
10.3.5 處理函數 232
10.3.6 注冊函數 233
10.3.7 測試驗證 234
10.4 總結 234
第11章 Nginx變量 236
11.1 結構定義 236
11.1.1 變量 237
11.1.2 復雜變量 238
11.1.3 變量的存儲 239
11.1.4 請求結構體 239
11.2 操作變量 240
11.2.1 添加變量 240
11.2.2 獲取變量 241
11.2.3 修改變量 242
11.2.4 編譯復雜變量 242
11.2.5 獲取復雜變量 242
11.3 開發示例:變量 243
11.3.1 模塊設計 243
11.3.2 定義變量 243
11.3.3 添加變量 244
11.3.4 獲取變量 244
11.3.5 測試驗證 245
11.4 開發示例:復雜變量 246
11.4.1 模塊設計 246
11.4.2 定義復雜變量 246
11.4.3 編譯復雜變量 246
11.4.4 獲取復雜變量 247
11.4.5 測試驗證 247
11.5 總結 247
第12章 Nginx內存管理機制 249
12.1 基本系統調用 250
12.1.1 malloc 250
12.1.2 posix_memalign 251
12.1.3 free 251
12.2 塊式內存池 252
12.2.1 結構定義 252
12.2.2 常量定義 255
12.2.3 創建內存池 255
12.2.4 分配內存 257
12.2.5 分配大塊內存 258
12.2.6 分配小塊內存 259
12.2.7 釋放內存 264
12.2.8 清理機制 264
12.2.9 清空內存池 265
12.2.10 銷毀內存池 266
12.3 頁式內存池 267
12.3.1 結構定義 268
12.3.2 常量定義 270
12.3.3 初始化內存池 271
12.3.4 分配內存 273
12.3.5 分配大塊內存 275
12.3.6 分配小塊內存 277
12.3.7 釋放內存 280
12.4 總結 282
第13章 Nginx進程機制 284
13.1 基本系統調用 284
13.1.1 errno 284
13.1.2 getrlimit 285
13.2 進程系統調用 285
13.2.1 getpid 285
13.2.2 fork 286
13.2.3 waitpid 286
13.3 信號系統調用 287
13.3.1 kill 287
13.3.2 sigactio
NGINX完全開發指南:使用C.C++.JAVASCRIPT和LUA 作者簡介
羅劍鋒(網名Chrono)1996年就讀于東北財經大學;1997年開始接觸C/C ;1998年參加計算機軟件專業技術資格和水平考試,獲高級程序員資質;2003年畢業于北京理工大學,獲計算機專業碩士學位。主要研究方向為C/C 、設計模式、高性能網絡服務器開發,業余愛好是閱讀、欣賞音樂和旅游。
- >
二體千字文
- >
企鵝口袋書系列·偉大的思想20:論自然選擇(英漢雙語)
- >
中國歷史的瞬間
- >
自卑與超越
- >
苦雨齋序跋文-周作人自編集
- >
羅庸西南聯大授課錄
- >
名家帶你讀魯迅:朝花夕拾
- >
【精裝繪本】畫給孩子的中國神話