學習Nginx HTTP Server(中文版) PDF掃描版[23MB]
23.22MB / 03-11
決戰(zhàn)Nginx系統(tǒng)卷:高性能Web服務器詳解與運維 PDF掃描版[94MB]
94.92MB / 05-12
決戰(zhàn)Nginx技術卷:高性能Web服務器部署與運維(基于php、Java、A
118.6MB / 05-12
深入剖析Nginx (高群凱) pdf掃描版
77MB / 03-16
Nginx高性能Web服務器詳解 pdf掃描版[178MB]
178MB / 07-04
-
-
Zabbix v7.0使用手冊 中文版PDF 服務器 / 30MB
-
VMware vSphere 8.0.2全套中文手冊 官方PDF完整版 服務器 / 64.6MB
-
Nginx 安全配置指南技術手冊pdf版 服務器 / 488KB
-
DNS學習從入門到精通 完整PDF版 服務器 / 6.33MB
-
Windows Server 2016系統(tǒng)配置指南 完整pdf掃描版[155MB] 服務器 / 154.8MB
-
-
Windows Server 2016 Active Directory配置指南 中文PDF版 服務器 / 23.3MB
-
-
vSAN操作指南 中文PDF完整版 服務器 / 6.11MB
詳情介紹
深入理解nginx:模塊開發(fā)與架構解析是阿里巴巴資深nginx技術專家嘔心瀝血之作,是作者多年的經驗結晶,也是目前市場上唯一一本通過還原nginx設計思想,剖析nginx架構來幫助讀者快速高效開發(fā)http模塊的圖書.
深入理解nginx:模塊開發(fā)與架構解析首先通過介紹官方nginx的基本用法和配置規(guī)則,幫助讀者了解一般nginx模塊的用法,然后重點介紹如何開發(fā)http模塊(含http過濾模塊)來得到定制的nginx,其中包括開發(fā)一個功能復雜的模塊所需要了解的各種知識,如nginx的基礎數(shù)據(jù)結構、配置項的解析、記錄日志的工具以及upstream、subrequest的使用方法等。在此基礎上,綜合nginx框架代碼分析nginx的架構,介紹其設計理念和技巧,進一步幫助讀者自由、有效地開發(fā)出功能豐富、性能一流的nginx模塊。
深入理解Nginx:模塊開發(fā)與架構解析 目錄:
前 言
第一部分 Nginx能幫我們做什么
第1章 研究Nginx前的準備工作 / 2
1.1 Nginx是什么 / 2
1.2 為什么選擇Nginx / 4
1.3 準備工作 / 7
1.3.1 Linux操作系統(tǒng) / 7
1.3.2 使用Nginx的必備軟件 / 7
1.3.3 磁盤目錄 / 8
1.3.4 Linux內核參數(shù)的優(yōu)化 / 9
1.3.5 獲取Nginx源碼 / 11
1.4 編譯安裝Nginx / 11
1.5 configure詳解 / 11
1.5.1 configure的命令參數(shù) / 12
1.5.2 configure執(zhí)行流程 / 18
1.5.3 configure生成的文件 / 22
1.6 Nginx的命令行控制 / 24
1.7 小結 / 27
第2章 Nginx的配置 / 28
2.1 運行中的Nginx進程間的關系 / 28
2.2 Nginx配置的通用語法 / 31
2.2.1 塊配置項 / 31
2.2.2 配置項的語法格式 / 32
2.2.3 配置項的注釋 / 33
2.2.4 配置項的單位 / 33
2.2.5 在配置中使用變量 / 33
2.3 Nginx服務的基本配置 / 34
2.3.1 用于調試進程和定位問題的配置項 / 34
2.3.2 正常運行的配置項 / 36
2.3.3 優(yōu)化性能的配置項 / 38
2.3.4 事件類配置項 / 39
2.4 用HTTP核心模塊配置一個靜態(tài)Web服務器 / 41
2.4.1 虛擬主機與請求的分發(fā) / 42
2.4.2 文件路徑的定義 / 45
2.4.3 內存及磁盤資源的分配 / 48
2.4.4 網(wǎng)絡連接的設置 / 50
2.4.5 MIME類型的設置 / 53
2.4.6 對客戶端請求的限制 / 54
2.4.7 文件操作的優(yōu)化 / 55
2.4.8 對客戶端請求的特殊處理 / 57
2.4.9 ngx_http_core_module模塊提供的變量 / 59
2.5 用HTTP proxy module配置一個反向代理服務器 / 60
2.5.1 負載均衡的基本配置 / 62
2.5.2 反向代理的基本配置 / 64
2.6 小結 / 68
第二部分 如何編寫HTTP模塊
第3章 開發(fā)一個簡單的HTTP模塊 / 70
3.1 如何調用HTTP模塊 / 70
3.2 準備工作 / 72
3.2.1 整型的封裝 / 72
3.2.2 ngx_str_t數(shù)據(jù)結構 / 73
3.2.3 ngx_list_t數(shù)據(jù)結構 / 73
3.2.4 ngx_table_elt_t數(shù)據(jù)結構 / 77
3.2.5 ngx_buf_t數(shù)據(jù)結構 / 77
3.2.6 ngx_chain_t數(shù)據(jù)結構 / 79
3.3 如何將自己的HTTP模塊編譯進Nginx / 79
3.3.1 config文件的寫法 / 80
3.3.2 利用configure腳本將定制的模塊加入到Nginx中 / 80
3.3.3 直接修改Makefile文件 / 84
3.4 HTTP模塊的數(shù)據(jù)結構 / 85
3.5 定義自己的HTTP模塊 / 88
3.6 處理用戶請求 / 92
3.6.1 處理方法的返回值 / 92
3.6.2 獲取URI和參數(shù) / 95
3.6.3 獲取HTTP頭部 / 98
3.6.4 獲取HTTP包體 / 101
3.7 發(fā)送響應 / 102
3.7.1 發(fā)送HTTP頭部 / 102
3.7.2 將內存中的字符串作為包體發(fā)送 / 104
3.7.3 經典的“Hello World”示例 / 106
3.8 將磁盤文件作為包體發(fā)送 / 107
3.8.1 如何發(fā)送磁盤中的文件 / 107
3.8.2 清理文件句柄 / 110
3.8.3 支持用戶多線程下載和斷點續(xù)傳 / 111
3.9 用C++語言編寫HTTP模塊 / 112
3.9.1 編譯方式的修改 / 112
3.9.2 程序中的符號轉換 / 114
3.10 小結 / 114
第4章 配置、error日志和請求上下文 / 115
4.1 http配置項的使用場景 / 115
4.2 怎樣使用http配置 / 117
4.2.1 分配用于保存配置參數(shù)的數(shù)據(jù)結構 / 117
4.2.2 設定配置項的解析方式 / 119
4.2.3 使用14種預設方法解析配置項 / 125
4.2.4 自定義配置項處理方法 / 136
4.2.5 合并配置項 / 137
4.3 HTTP配置模型 / 140
4.3.1 解析HTTP配置的流程 / 141
4.3.2 HTTP配置模型的內存布局 / 144
4.3.3 如何合并配置項 / 147
4.3.4 預設配置項處理方法的工作原理 / 149
4.4 error日志的用法 / 150
4.5 請求的上下文 / 155
4.5.1 上下文與全異步Web服務器的關系 / 155
4.5.2 如何使用HTTP上下文 / 156
4.5.3 HTTP框架如何維護上下文結構 / 157
4.6 小結 / 158
第5章 訪問第三方服務 / 159
5.1 upstream的使用方式 / 160
5.1.1 ngx_http_upstream_t結構體 / 163
5.1.2 設置upstream的限制性參數(shù) / 164
5.1.3 設置需要訪問的第三方服務器地址 / 165
5.1.4 設置回調方法 / 166
5.1.5 如何啟動upstream機制 / 166
5.2 回調方法的執(zhí)行場景 / 167
5.2.1 create_request回調方法 / 167
5.2.2 reinit_request回調方法 / 169
5.2.3 finalize_request回調方法 / 170
5.2.4 process_header回調方法 / 171
5.2.5 rewrite_redirect回調方法 / 172
5.2.6 input_filter_init與input_filter回調方法 / 172
5.3 使用upstream的示例 / 173
5.3.1 upstream的各種配置參數(shù) / 174
5.3.2 請求上下文 / 175
5.3.3 在create_request方法中構造請求 / 176
5.3.4 在process_header方法中解析包頭 / 177
5.3.5 在finalize_request方法中釋放資源 / 180
5.3.6 在ngx_http_mytest_handler方法中啟動upstream / 181
5.4 subrequest的使用方式 / 183
5.4.1 配置子請求的處理方式 / 183
5.4.2 實現(xiàn)子請求處理完畢時的回調方法 / 184
5.4.3 處理父請求被重新激活后的回調方法 / 185
5.4.4 啟動subrequest子請求 / 185
5.5 subrequest執(zhí)行過程中的主要場景 / 186
5.5.1 如何啟動subrequest / 186
5.5.2 如何轉發(fā)多個子請求的響應包體 / 188
5.5.3 子請求如何激活父請求 / 192
5.6 subrequest使用的例子 / 193
5.6.1 配置文件中子請求的設置 / 194
5.6.2 請求上下文 / 194
5.6.3 子請求結束時的處理方法 / 195
5.6.4 父請求的回調方法 / 196
5.6.5 啟動subrequest / 197
5.7 小結 / 198
第6章 開發(fā)一個簡單的HTTP過濾模塊 / 199
6.1 過濾模塊的意義 / 199
6.2 過濾模塊的調用順序 / 200
6.2.1 過濾鏈表是如何構成的 / 200
6.2.2 過濾鏈表的順序 / 203
6.2.3 官方默認HTTP過濾模塊的功能簡介 / 204
6.3 HTTP過濾模塊的開發(fā)步驟 / 206
6.4 HTTP過濾模塊的簡單例子 / 207
6.4.1 如何編寫config文件 / 208
6.4.2 配置項和上下文 / 208
6.4.3 定義HTTP過濾模塊 / 210
6.4.4 初始化HTTP過濾模塊 / 211
6.4.5 處理請求中的HTTP頭部 / 212
6.4.6 處理請求中的HTTP包體 / 213
6.5 小結 / 214
第7章 Nginx提供的高級數(shù)據(jù)結構 / 215
7.1 Nginx提供的高級數(shù)據(jù)結構概述 / 215
7.2 ngx_queue_t雙向鏈表 / 217
7.2.1 為什么設計ngx_queue_t雙向鏈表 / 217
7.2.2 雙向鏈表的使用方法 / 217
7.2.3 使用雙向鏈表排序的例子 / 219
7.2.4 雙向鏈表是如何實現(xiàn)的 / 221
7.3 ngx_array_t動態(tài)數(shù)組 / 222
7.3.1 為什么設計ngx_array_t動態(tài)數(shù)組 / 223
7.3.2 動態(tài)數(shù)組的使用方法 / 223
7.3.3 使用動態(tài)數(shù)組的例子 / 225
7.3.4 動態(tài)數(shù)組的擴容方式 / 226
7.4 ngx_list_t單向鏈表 / 226
7.5 ngx_rbtree_t紅黑樹 / 227
7.5.1 為什么設計ngx_rbtree_t紅黑樹 / 227
7.5.2 紅黑樹的特性 / 228
7.5.3 紅黑樹的使用方法 / 230
7.5.4 使用紅黑樹的簡單例子 / 233
7.5.5 如何自定義添加成員方法 / 234
7.6 ngx_radix_tree_t基數(shù)樹 / 236
7.6.1 ngx_radix_tree_t基數(shù)樹的原理 / 236
7.6.2 基數(shù)樹的使用方法 / 238
7.6.3 使用基數(shù)樹的例子 / 239
7.7 支持通配符的散列表 / 240
7.7.1 ngx_hash_t基本散列表 / 240
7.7.2 支持通配符的散列表 / 243
7.7.3 帶通配符散列表的使用例子 / 250
7.8 小結 / 254
第三部分 深入Nginx
第8章 Nginx基礎架構 / 256
8.1 Web服務器設計中的關鍵約束 / 256
8.2 Nginx的架構設計 / 259
8.2.1 優(yōu)秀的模塊化設計 / 259
8.2.2 事件驅動架構 / 263
8.2.3 請求的多階段異步處理 / 264
8.2.4 管理進程、多工作進程設計 / 267
8.2.5 平臺無關的代碼實現(xiàn) / 268
8.2.6 內存池的設計 / 268
8.2.7 使用統(tǒng)一管道過濾器模式的HTTP過濾模塊 / 268
8.2.8 其他一些用戶模塊 / 269
8.3 Nginx框架中的核心結構體ngx_cycle_t / 269
8.3.1 ngx_listening_t結構體 / 269
8.3.2 ngx_cycle_t結構體 / 271
8.3.3 ngx_cycle_t支持的方法 / 273
8.4 Nginx啟動時框架的處理流程 / 275
8.5 worker進程是如何工作的 / 278
8.6 master進程是如何工作的 / 281
8.7 小結 / 286
第9章 事件模塊 / 287
9.1 事件處理框架概述 / 287
9.2 Nginx事件的定義 / 290
9.3 Nginx連接的定義 / 293
9.3.1 被動連接 / 294
9.3.2 主動連接 / 297
9.3.3 ngx_connection_t連接池 / 298
9.4 ngx_events_module核心模塊 / 300
9.4.1 如何管理所有事件模塊的配置項 / 301
9.4.2 管理事件模塊 / 303
9.5 ngx_event_core_module事件模塊 / 305
9.6 epoll事件驅動模塊 / 310
9.6.1 epoll的原理和用法 / 311
9.6.2 如何使用epoll / 313
9.6.3 ngx_epoll_module模塊的實現(xiàn) / 315
9.7 定時器事件 / 323
9.7.1 緩存時間的管理 / 324
9.7.2 緩存時間的精度 / 326
9.7.3 定時器的實現(xiàn) / 327
9.8 事件驅動框架的處理流程 / 328
9.8.1 如何建立新連接 / 329
9.8.2 如何解決“驚群”問題 / 330
9.8.3 如何實現(xiàn)負載均衡 / 333
9.8.4 post事件隊列 / 334
9.8.5 ngx_process_events_and_timers流程 / 335
9.9 文件的異步I/O / 338
9.9.1 Linux內核提供的文件異步I/O / 339
9.9.2 ngx_epoll_module模塊中實現(xiàn)的針對文件的異步I/O / 342
9.10 小結 / 346
第10章 HTTP框架的初始化 / 347
10.1 HTTP框架概述 / 348
10.2 管理HTTP模塊的配置項 / 351
10.2.1 管理main級別下的配置項 / 352
10.2.2 管理server級別下的配置項 / 354
10.2.3 管理location級別下的配置項 / 357
10.2.4 不同級別配置項的合并 / 362
10.3 監(jiān)聽端口的管理 / 367
10.4 server的快速檢索 / 369
10.5 location的快速檢索 / 371
10.6 HTTP請求的11個處理階段 / 372
10.6.1 HTTP處理階段的普適規(guī)則 / 374
10.6.2 NGX_HTTP_POST_READ_PHASE階段 / 376
10.6.3 NGX_HTTP_SERVER_REWRITE_PHASE階段 / 378
10.6.4 NGX_HTTP_FIND_CONFIG_PHASE階段 / 379
10.6.5 NGX_HTTP_REWRITE_PHASE階段 / 379
10.6.6 NGX_HTTP_POST_REWRITE_PHASE階段 / 379
10.6.7 NGX_HTTP_PREACCESS_PHASE階段 / 379
10.6.8 NGX_HTTP_ACCESS_PHASE階段 / 380
10.6.9 NGX_HTTP_POST_ACCESS_PHASE階段 / 380
10.6.10 NGX_HTTP_TRY_FILES_PHASE階段 / 381
10.6.11 NGX_HTTP_CONTENT_PHASE階段 / 381
10.6.12 NGX_HTTP_LOG_PHASE階段 / 382
10.7 HTTP框架的初始化流程 / 383
10.8 小結 / 385
第11章 HTTP框架的執(zhí)行流程 / 386
11.1 HTTP框架執(zhí)行流程概述 / 387
11.2 新連接建立時的行為 / 388
11.3 第一次可讀事件的處理 / 390
11.4 接收HTTP請求行 / 396
11.5 接收HTTP頭部 / 399
11.6 處理HTTP請求 / 403
11.6.1 ngx_http_core_generic_phase / 409
11.6.2 ngx_http_core_rewrite_phase / 411
11.6.3 ngx_http_core_access_phase / 412
11.6.4 ngx_http_core_content_phase / 415
11.7 subrequest與post請求 / 419
11.8 處理HTTP包體 / 421
11.8.1 接收包體 / 422
11.8.2 放棄接收包體 / 429
11.9 發(fā)送HTTP響應 / 433
11.9.1 ngx_http_send_header / 434
11.9.2 ngx_http_output_filter / 436
11.9.3 ngx_http_writer / 440
11.10 結束HTTP請求 / 442
11.10.1 ngx_http_close_connection / 443
11.10.2 ngx_http_free_request / 444
11.10.3 ngx_http_close_request / 446
11.10.4 ngx_http_finalize_connection / 447
11.10.5 ngx_http_terminate_request / 447
11.10.6 ngx_http_finalize_request / 448
11.11 小結 / 452
第12章 upstream機制的設計與實現(xiàn) / 453
12.1 upstream機制概述 / 453
12.1.1 設計目的 / 454
12.1.2 ngx_http_upstream_t數(shù)據(jù)結構的意義 / 456
12.1.3 ngx_http_upstream_conf_t配置結構體 / 459
12.2 啟動upstream / 462
12.3 與上游服務器建立連接 / 464
12.4 發(fā)送請求到上游服務器 / 467
12.5 接收上游服務器的響應頭部 / 470
12.5.1 應用層協(xié)議的兩段劃分方式 / 470
12.5.2 處理包體的3種方式 / 471
12.5.3 接收響應頭部的流程 / 473
12.6 不轉發(fā)響應時的處理流程 / 476
12.6.1 input_filter方法的設計 / 477
12.6.2 默認的input_filter方法 / 478
12.6.3 接收包體的流程 / 479
12.7 以下游網(wǎng)速優(yōu)先來轉發(fā)響應 / 481
12.7.1 轉發(fā)響應的包頭 / 482
12.7.2 轉發(fā)響應的包體 / 484
12.8 以上游網(wǎng)速優(yōu)先來轉發(fā)響應 / 489
12.8.1 ngx_event_pipe_t結構體的意義 / 489
12.8.2 轉發(fā)響應的包頭 / 493
12.8.3 轉發(fā)響應的包體 / 495
12.8.4 ngx_event_pipe_read_upstream方法 / 498
12.8.5 ngx_event_pipe_write_to_downstream方法 / 502
12.9 結束upstream請求 / 504
12.10 小結 / 508
第13章 郵件代理模塊 / 509
13.1 郵件代理服務器的功能 / 509
13.2 郵件模塊的處理框架 / 512
13.2.1 一個請求的8個獨立處理階段 / 512
13.2.2 郵件類模塊的定義 / 514
13.2.3 郵件框架的初始化 / 516
13.3 初始化請求 / 517
13.3.1 描述郵件請求的ngx_mail_session_t結構體 / 517
13.3.2 初始化郵件請求的流程 / 519
13.4 接收并解析客戶端請求 / 520
13.5 郵件認證 / 520
13.5.1 ngx_mail_auth_http_ctx_t結構體 / 520
13.5.2 與認證服務器建立連接 / 522
13.5.3 發(fā)送請求到認證服務器 / 522
13.5.4 接收并解析響應 / 525
13.6 與上游郵件服務器間的認證交互 / 526
13.6.1 ngx_mail_proxy_ctx_t結構體 / 526
13.6.2 向上游郵件服務器發(fā)起連接 / 527
13.6.3 與郵件服務器認證交互的過程 / 528
13.7 透傳上游郵件服務器與客戶端間的流 / 530
13.8 小結 / 535
第14章 進程間的通信機制 / 536
14.1 概述 / 536
14.2 共享內存 / 536
14.3 原子操作 / 541
14.3.1 不支持原子庫下的原子操作 / 541
14.3.2 x86架構下的原子操作 / 542
14.3.3 自旋鎖 / 545
14.4 Nginx頻道 / 546
14.5 信號 / 549
14.6 信號量 / 551
14.7 文件鎖 / 553
14.8 互斥鎖 / 556
14.8.1 文件鎖實現(xiàn)的ngx_shmtx_t鎖 / 558
14.8.2 原子變量實現(xiàn)的ngx_shmtx_t鎖 / 560
14.9 小結 / 565
下載地址
人氣書籍
決戰(zhàn)Nginx系統(tǒng)卷:高性能Web服務器詳解與運維 PDF掃描版[94MB]
Tomcat權威指南(第2版) PDF掃描版
Hadoop實戰(zhàn)(第2版)陸嘉恒著 PDF掃描版
Nginx高性能Web服務器詳解 pdf掃描版[178MB]
精通Windows Server 2008 R2 PDF掃描版[157MB]
大規(guī)模Web服務開發(fā)技術 PDF掃描版[14MB]
Hadoop應用開發(fā)技術詳解 pdf掃描版
深入剖析Tomcat (Paul Deck) pdf掃描版
Windows Server 2012 Hyper-V虛擬化管理實踐 PDF掃描版[223MB]
學習Nginx HTTP Server(中文版) PDF掃描版[23MB]
下載聲明
☉ 解壓密碼:chabaoo.cn 就是本站主域名,希望大家看清楚,[ 分享碼的獲取方法 ]可以參考這篇文章
☉ 推薦使用 [ 迅雷 ] 下載,使用 [ WinRAR v5 ] 以上版本解壓本站軟件。
☉ 如果這個軟件總是不能下載的請在評論中留言,我們會盡快修復,謝謝!
☉ 下載本站資源,如果服務器暫不能下載請過一段時間重試!或者多試試幾個下載地址
☉ 如果遇到什么問題,請評論留言,我們定會解決問題,謝謝大家支持!
☉ 本站提供的一些商業(yè)軟件是供學習研究之用,如用于商業(yè)用途,請購買正版。
☉ 本站提供的深入理解Nginx 模塊開發(fā)與架構解析 PDF掃描版[33MB]資源來源互聯(lián)網(wǎng),版權歸該下載資源的合法擁有者所有。