Nginx模塊開發指南:使用C++11和Boost程序庫

Nginx模塊開發指南:使用C++11和Boost程序庫 下載 mobi epub pdf 電子書 2024


簡體網頁||繁體網頁
羅劍鋒 著



點擊這裡下載
    


想要找書就要到 圖書大百科
立刻按 ctrl+D收藏本頁
你會得到大驚喜!!

發表於2024-12-23

類似圖書 點擊查看全場最低價

圖書介紹

齣版社: 電子工業齣版社
ISBN:9787121272943
版次:1
商品編碼:11785180
品牌:Broadview
包裝:平裝
開本:16開
齣版時間:2015-11-01
用紙:膠版紙
頁數:372
正文語種:中文


相關圖書





圖書描述

産品特色

編輯推薦

好書推薦:
Boost程序庫完全開發指南:深入C++“準”標準庫(第3版)

內容簡介

  Nginx 是由俄羅斯工程師Igor Sysoev 開發的一個高性能Web 服務器,運行效率遠超傳統的Apache、Tomcat,是世界第二大Web 服務器,被國內外諸多互聯網公司采用。
  Nginx 的一個突齣特點是其靈活模塊化架構,可以在不修改核心的前提下增加任意功能,自2004 年發布至今,已經擁有百餘個官方及非官方的功能模塊(如fastcgi、memcached、mysql 等),使得Nginx 成長為瞭一個近乎“全能”的服務器軟件。
  Nginx 以純C 語言實現,開發擴展功能模塊也大多使用C 語言,但由於C 語言固有的過程式特性,編寫、調試代碼都較麻煩——特彆是對於Nginx 的初學者。《Nginx 模塊開發指南:使用C++11 和Boost 程序庫》深入源碼,詳細解析瞭模塊體係、配置指令、HTTP 框架等Nginx 核心運行機製,並在此基礎上講解如何使用C++和Boost 程序庫來開發Nginx 模塊,充分利用現代C++裏的大量新特性和庫組件,讓Nginx 的模塊開發變得更加便捷、輕鬆和愉快。
  《Nginx 模塊開發指南:使用C++11 和Boost 程序庫》結構嚴謹、脈絡清晰、詳略得當,值得廣大軟件開發工程師、係統運維工程師和編程愛好者擁有。

作者簡介

  羅劍鋒,1996年就讀於東北財經大學,1997年開始接觸C/C++,1998年參加計算機軟件專業技術資格和,水平考試,獲高級程序員資質,2003年畢業於北京理工大學,獲計算機,專業碩士學位,主要研究方嚮為C/C++、設計模式,高性能網絡服務器開發,業餘愛好是閱讀、欣賞音樂和旅遊。

目錄

第0章 導讀 1
0.1 關於本書 1
0.2 讀者對象 2
0.3 讀者要求 3
0.4 運行環境 3
0.5 本書的結構 4
0.6 如何閱讀本書 6
0.7 本書的源碼 6
第1章 Nginx入門 7
1.1 關於Nginx 7
1.1.1 曆史 8
1.1.2 特點 8
1.1.3 進程模型 9
1.1.4 版本 10
1.2 安裝Nginx 11
1.2.1 準備工作 11
1.2.2 快速安裝 11
1.2.3 運行命令 12
1.2.4 驗證安裝 13
1.2.5 定製安裝 14
1.3 配置Nginx 15
1.3.1 配置文件格式 16
1.3.2 進程配置 17
1.3.3 運行日誌配置 18
1.3.4 http配置 18
1.3.5 server配置 19
1.3.6 location配置 20
1.3.7 文件訪問配置 21
1.3.8 upstream配置 22
1.3.9 變量 22
1.4 總結 24
第2章 Nginx開發準備 25
2.1 開發環境 25
2.1.1 C++標準 25
2.1.2 Boost程序庫 26
2.2 Nginx的目錄結構 26
2.3 Nginx源碼的特點 27
2.3.1 代碼風格 28
2.3.2 代碼優化 28
2.3.3 麵嚮對象思想 28
2.4 在Nginx裏使用C++ 29
2.4.1 實現原則 29
2.4.2 代碼風格 29
2.4.3 編譯腳本 30
2.5 基本的C++包裝類 32
2.5.1 類定義 32
2.5.2 構造和析構 33
2.5.3 成員函數 33
2.6 總結 34
第3章 Nginx基礎設施 35
3.1 頭文件 35
3.2 整數類型 36
3.2.1 標準整數類型 36
3.2.2 自定義整數類型 36
3.2.3 無效值 37
3.2.4 C++封裝 38
3.3 錯誤處理 41
3.3.1 錯誤碼定義 41
3.3.2 C++異常 41
3.4 內存池 44
3.4.1 結構定義 44
3.4.2 操作函數 45
3.4.3 C++封裝 45
3.4.4 清理機製 48
3.4.5 C++內存分配器 50
3.5 字符串 52
3.5.1 結構定義 52
3.5.2 操作函數 53
3.5.3 C++封裝 55
3.6 時間與日期 58
3.6.1 時間結構定義 58
3.6.2 時間操作函數 58
3.6.3 日期結構定義 59
3.6.4 日期操作函數 60
3.6.5 C++封裝時間 61
3.6.6 C++封裝日期 62
3.7 運行日誌 64
3.7.1 結構定義 65
3.7.2 操作函數 65
3.7.3 C++封裝 66
3.8 總結 68
第4章 Nginx高級數據結構 71
4.1 動態數組 71
4.1.1 結構定義 71
4.1.2 操作函數 73
4.1.3 C++封裝 73
4.2 單嚮鏈錶 76
4.2.1 結構定義 77
4.2.2 操作函數 78
4.2.3 C++迭代器 79
4.2.4 C++封裝鏈錶 81
4.3 雙端隊列 84
4.3.1 結構定義 84
4.3.2 操作函數 85
4.3.3 C++節點 87
4.3.4 C++迭代器 89
4.3.5 C++封裝隊列 90
4.4 緩衝區 95
4.4.1 結構定義 95
4.4.2 操作函數 97
4.4.3 C++封裝 98
4.5 數據塊鏈 100
4.5.1 結構定義 100
4.5.2 操作函數 101
4.5.3 C++節點 101
4.5.4 C++迭代器 103
4.5.5 C++封裝數據塊鏈 105
4.6 鍵值對 107
4.6.1 簡單鍵值對 107
4.6.2 散列錶鍵值對 107
4.7 總結 108
第5章 Nginx開發綜述 111
5.1 最簡單的Nginx模塊 111
5.1.1 模塊設計 112
5.1.2 配置解析 112
5.1.3 處理函數 114
5.1.4 模塊集成 116
5.1.5 編譯腳本和命令 117
5.1.6 測試驗證 118
5.2 Nginx開發基本流程 119
5.2.1 設計 119
5.2.2 開發 119
5.2.3 編譯 120
5.2.4 測試驗證 120
5.2.5 調優 121
5.3 Nginx的模塊 121
5.3.1 模塊的數據結構 121
5.3.2 模塊的種類 123
5.3.3 http模塊 124
5.3.4 模塊的類圖 124
5.3.5 模塊的組織形式 125
5.4 Nginx的配置 127
5.4.1 結構定義 128
5.4.2 配置解析的基本流程 131
5.4.3 配置數據的存儲模型 133
5.4.4 訪問配置數據 138
5.4.5 確定配置數據的位置 138
5.4.6 配置解析函數 140
5.4.7 配置數據的閤並 141
5.4.8 配置指令的類型 142
5.5 Nginx模塊源碼分析 143
5.5.1 ngx_core_module 143
5.5.2 ngx_errlog_module 146
5.6 Nginx的編譯腳本 147
5.6.1 運行機製 147
5.6.2 使用的變量 148
5.7 C++封裝模塊信息 149
5.7.1 NgxModuleConfig 149
5.7.2 NgxModule 153
5.8 C++封裝配置解析 155
5.8.1 NgxCommand 155
5.8.2 NgxTake 155
5.8.3 NGX_MODULE_NULL 157
5.9 C++開發Nginx模塊 158
5.9.1 C++模塊的基本組成 158
5.9.2 配置信息類 159
5.9.3 業務邏輯類 160
5.9.4 模塊集成類 162
5.9.5 實現源文件 164
5.9.6 增加更多功能 164
5.10 總結 165
第6章 Nginx HTTP框架綜述 169
6.1 HTTP框架簡介 169
6.1.1 模塊分類 169
6.1.2 處理流程 170
6.1.3 請求結構體 172
6.1.4 請求的處理階段 173
6.1.5 請求的環境數據 175
6.2 HTTP處理引擎 176
6.2.1 處理函數原型 176
6.2.2 處理函數的存儲方式 176
6.2.3 內容處理函數 177
6.2.4 引擎的數據結構 178
6.2.5 引擎的初始化 179
6.2.6 引擎的運行機製 181
6.2.7 日誌階段的處理 182
6.3 HTTP過濾引擎 183
6.3.1 過濾函數原型 183
6.3.2 過濾函數鏈錶 184
6.3.3 過濾函數的順序 185
6.3.4 過濾鏈錶的運行機製 187
6.3.5 請求體過濾 188
6.4 Nginx模塊源碼分析 188
6.4.1 ngx_http_static_module 188
6.4.2 ngx_http_not_modified_filter_ module 189
6.5 C++封裝 190
6.5.1 NgxModuleCtx 191
6.5.2 NgxHttpCoreModule 193
6.5.3 NgxFilter 195
6.6 總結 197
第7章 Nginx HTTP請求處理 199
7.1 HTTP狀態碼 199
7.2 請求結構體 200
7.3 請求行 201
7.3.1 請求方法 201
7.3.2 協議版本號 202
7.3.3 資源標識符 202
7.4 請求頭 203
7.5 請求體 204
7.5.1 結構定義 205
7.5.2 操作函數 205
7.6 響應頭 206
7.6.1 結構定義 206
7.6.2 操作函數 207
7.7 響應體 207
7.8 C++封裝 208
7.8.1 NgxHeaders 208
7.8.2 NgxRequestBody 211
7.8.3 NgxRequest 212
7.8.4 NgxResponse 213
7.9 開發HTTP處理模塊 216
7.9.1 模塊設計 216
7.9.2 配置信息類 217
7.9.3 業務邏輯類 217
7.9.4 模塊集成類 219
7.9.5 實現源文件 221
7.9.6 編譯腳本 221
7.9.7 測試驗證 221
7.10 開發HTTP過濾模塊 222
7.10.1 模塊設計 222
7.10.2 配置信息類 222
7.10.3 環境數據類 223
7.10.4 業務邏輯類 223
7.10.5 模塊集成類 227
7.10.6 實現源文件 228
7.10.7 編譯腳本 228
7.10.8 測試驗證 228
7.11 總結 229
第8章 Nginx HTTP請求轉發 231
8.1 upstream框架簡介 231
8.1.1 工作原理 232
8.1.2 請求結構體 233
8.1.3 上遊結構體 234
8.1.4 上遊配置參數 236
8.2 upstream運行機製 237
8.2.1 迴調函數 237
8.2.2 初始化upstream 239
8.2.3 設置upstream 239
8.2.4 啓動upstream 241
8.2.5 處理upstream數據 241
8.3 load-balance運行機製 242
8.3.1 結構定義 243
8.3.2 初始化模塊入口 247
8.3.3 初始化IP地址列錶 248
8.3.4 初始化算法 250
8.3.5 執行算法 251
8.4 Nginx模塊源碼分析 251
8.4.1 ngx_http_memcached_module 251
8.4.2 ngx_http_upstream_ip_hash_ module 254
8.5 C++封裝 257
8.5.1 NgxUpstream 257
8.5.2 NgxUpstreamHelper 259
8.5.3 NgxHttpUpstreamModule 261
8.5.4 NgxLoadBalance 263
8.6 開發upstream模塊 264
8.6.1 模塊設計 264
8.6.2 配置信息類 264
8.6.3 業務邏輯類 265
8.6.4 模塊集成類 268
8.6.5 實現源文件 269
8.6.6 編譯腳本 269
8.6.7 測試驗證 269
8.7 開發load-balance模塊 270
8.7.1 模塊設計 271
8.7.2 配置信息類 271
8.7.3 業務邏輯類 271
8.7.4 模塊集成類 273
8.7.5 實現源文件 275
8.7.6 編譯腳本 275
8.7.7 測試驗證 275
8.8 總結 276
第9章 Nginx HTTP子請求 277
9.1 子請求簡介 277
9.1.1 工作原理 278
9.1.2 請求結構體 279
9.1.3 迴調函數 280
9.1.4 待處理請求鏈錶 282
9.1.5 子請求存儲結構 282
9.2 子請求運行機製 283
9.2.1 創建子請求 283
9.2.2 處理引擎 287
9.2.3 數據整理 288
9.3 C++封裝 290
9.3.1 NgxSubRequestHandler 290
9.3.2 NgxSubRequest 292
9.4 數據迴傳模塊 293
9.4.1 模塊設計 293
9.4.2 環境數據類 293
9.4.3 業務邏輯類 295
9.4.4 模塊集成類 297
9.4.5 編譯腳本 298
9.5 在模塊裏使用子請求 299
9.5.1 模塊設計 299
9.5.2 配置信息類 299
9.5.3 業務邏輯類 300
9.5.4 測試驗證 303
9.6 總結 304
第10章 Nginx變量 305
10.1 結構定義 305
10.1.1 變量值 305
10.1.2 變量訪問對象 306
10.1.3 變量的存儲 307
10.1.4 請求結構體 307
10.2 運行機製 308
10.2.1 注冊變量 308
10.2.2 獲取變量 309
10.3 C++封裝 310
10.3.1 NgxVariableValue 310
10.3.2 NgxVariable 311
10.3.3 NgxVariables 312
10.3.4 NgxVarManager 313
10.3.5 NgxVariableValueProxy 314
10.4 在模塊裏使用變量 315
10.4.1 添加變量 316
10.4.2 讀寫變量 317
10.5 總結 317
第11章 Nginx輔助設施 319
11.1 摘要算法 319
11.1.1 MD5 319
11.1.2 SHA-1 320
11.1.3 MurmurHash 321
11.1.4 C++封裝 321
11.2 編碼和解碼 324
11.2.1 CRC校驗 324
11.2.2 Base64編碼解碼 325
11.2.3 URI編碼解碼 326
11.2.4 HTML和JSON編碼 327
11.3 正則錶達式 327
11.4 共享內存 328
11.4.1 結構定義 328
11.4.2 操作函數 329
11.4.3 C++共享內存 329
11.5 定時器 331
11.5.1 結構定義 331
11.5.2 操作函數 332
11.5.3 C++定時器事件 332
11.5.4 C++定時器工廠 333
11.6 總結 335
第12章 Nginx與設計模式 337
12.1 設計模式簡介 337
12.2 框架級彆的模式 337
12.3 業務級彆的模式 339
12.4 代碼級彆的模式 340
12.5 總結 342
第13章 結束語 343
13.1 本書的遺憾 343
13.2 下一步 344
13.3 臨彆贈言 345
附錄A 推薦書目 347
附錄B GDB調試簡介 349
附錄C Nginx的字符串格式化 351
附錄D Nginx裏的void*變量 353
附錄E Nginx C++模塊簡介 355
附錄F Nginx Lua模塊簡介 357

前言/序言

  緣起
  最早接觸Nginx 大概是在2011 年,麵對著一個全新的Web 服務器,和大多數人一樣最初我也是一片茫然,能找到的參考資料十分有限,安裝、配置、運行幾乎都是“摸著石頭過河”,犯過許多低級錯誤。
  隨著對Nginx 逐漸熟悉,它的高並發處理能力給我留下瞭深刻的印象,作為一個開源軟件的愛好者,很自然地想要探究一下它的內部工作原理。我由此開始瞭對Nginx 源碼的鑽研之路,中間經過瞭很多的艱辛麯摺,走過瞭不少的彎路。
  我最常用的工作語言是C++,所以在閱讀Nginx 源碼時也總以C++的麵嚮對象方式來思考和理解,以對象作為切入點記筆記、畫UML:從最簡單的ngx_str_t、ngx_array_t 入手,然後到ngx_request_t、ngx_ups Nginx模塊開發指南:使用C++11和Boost程序庫 下載 mobi epub pdf txt 電子書 格式

Nginx模塊開發指南:使用C++11和Boost程序庫 mobi 下載 pdf 下載 pub 下載 txt 電子書 下載 2024

Nginx模塊開發指南:使用C++11和Boost程序庫 下載 mobi pdf epub txt 電子書 格式 2024

Nginx模塊開發指南:使用C++11和Boost程序庫 下載 mobi epub pdf 電子書
想要找書就要到 圖書大百科
立刻按 ctrl+D收藏本頁
你會得到大驚喜!!

用戶評價

評分

太好瞭,便宜又實惠。京東現在太好瞭

評分

很好的書 慢慢看

評分

沒看

評分

在京東買瞭好幾本書瞭 好評 發貨快 贊?

評分

  Nginx 是由俄羅斯工程師Igor Sysoev 開發的一個高性能Web 服務器,運行效率遠超傳統的Apache、Tomcat,是世界第二大Web 服務器,被國內外諸多互聯網公司采用。

評分

好評

評分

滿意

評分

還沒開始看,書質量沒問題

評分

很不錯 多學點

類似圖書 點擊查看全場最低價

Nginx模塊開發指南:使用C++11和Boost程序庫 mobi epub pdf txt 電子書 格式下載 2024


分享鏈接




相關圖書


本站所有內容均為互聯網搜索引擎提供的公開搜索信息,本站不存儲任何數據與內容,任何內容與數據均與本站無關,如有需要請聯繫相關搜索引擎包括但不限於百度google,bing,sogou

友情鏈接

© 2024 book.qciss.net All Rights Reserved. 圖書大百科 版權所有