图书介绍
Nginx完全开发指南 使用C、C++和OpenResty【2025|PDF|Epub|mobi|kindle电子书版本百度云盘下载】

- 罗剑锋著 著
- 出版社: 北京:电子工业出版社
- ISBN:9787121314575
- 出版时间:2017
- 标注页数:618页
- 文件大小:200MB
- 文件页数:631页
- 主题词:互联网络-网络服务器-程序设计-指南;C语言-程序设计-指南
PDF下载
下载说明
Nginx完全开发指南 使用C、C++和OpenRestyPDF格式电子书版下载
下载的文件为RAR压缩包。需要使用解压软件进行解压得到PDF格式图书。建议使用BT下载工具Free Download Manager进行下载,简称FDM(免费,没有广告,支持多平台)。本站资源全部打包为BT种子。所以需要使用专业的BT下载软件进行下载。如BitComet qBittorrent uTorrent等BT下载工具。迅雷目前由于本站不是热门资源。不推荐使用!后期资源热门了。安装了迅雷也可以迅雷进行下载!
(文件页数 要大于 标注页数,上中下等多册电子书除外)
注意:本站所有压缩包均有解压码: 点击下载压缩包解压工具
图书目录
第0章 导读1
0.1关于本书1
0.2读者对象2
0.3读者要求3
0.4运行环境4
0.5本书的结构4
0.6如何阅读本书7
0.7本书的源码8
第1章Nginx入门9
1.1关于Nginx9
1.1.1历史10
1.1.2特点10
1.1.3进程模型11
1.1.4版本12
1.2安装Nginx13
1.2.1准备工作13
1.2.2快速安装14
1.2.3运行命令14
1.2.4验证安装16
1.2.5定制安装16
1.3配置Nginx19
1.3.1配置文件格式19
1.3.2进程配置20
1.3.3动态模块配置22
1.3.4运行日志配置22
1.3.5 events配置23
1.3.6 http配置23
1.3.7 server配置25
1.3.8 location配置26
1.3.9 fiile配置27
1.3.10 upstream配置27
1.3.11变量28
1.4总结30
第2章Nginx开发准备31
2.1开发环境31
2.1.1 C+++标准31
2.1.2 Boost程序库32
2.2目录结构32
2.3源码特点34
2.3.1代码风格34
2.3.2代码优化34
2.3.3面向对象思想34
2.4使用C++35
2.4.1实现原则35
2.4.2代码风格36
2.4.3编译脚本36
2.5 C++包装类38
2.5.1类定义38
2.5.2构造和析构39
2.5.3成员函数40
2.6总结40
第3章Nginx基础设施41
3.1头文件41
3.1.1 Nginx头文件41
3.1.2 C+++头文件42
3.2整数类型42
3.2.1标准整数类型43
3.2.2自定义整数类型43
3.2.3无效值44
3.2.4 C+++封装44
3.3错误处理47
3.3.1错误码定义48
3.3.2 C+++异常48
3.4内存池50
3.4.1结构定义51
3.4.2操作函数51
3.4.3 C+++封装52
3.4.4清理机制54
3.4.5 C+++内存分配器57
3.5字符串58
3.5.1结构定义59
3.5.2操作函数59
3.5.3 C+++封装61
3.6时间与日期64
3.6.1时间结构定义64
3.6.2时间操作函数64
3.6.3日期结构定义65
3.6.4日期操作函数66
3.6.5 C+++封装时间67
3.6.6 C+++封装日期68
3.7运行日志70
3.7.1结构定义71
3.7.2操作函数71
3.7.3 C+++封装72
3.8总结74
第4章Nginx高级数据结构77
4.1动态数组77
4.1.1结构定义77
4.1.2操作函数79
4.1.3 C+++动态数组79
4.2单向链表83
4.2.1结构定义83
4.2.2操作函数84
4.2.3 C+++迭代器85
4.2.4 C+++单向链表87
4.3双端队列90
4.3.1结构定义90
4.3.2操作函数91
4.3.3 C+++节点93
4.3.4 C+++迭代器95
4.3.5 C+++双端队列97
4.4红黑树101
4.4.1节点结构定义101
4.4.2树结构定义102
4.4.3操作函数103
4.4.4 C+++红黑树104
4.5缓冲区108
4.5.1结构定义108
4.5.2操作函数110
4.5.3 C+++缓冲区111
4.6数据块链113
4.6.1结构定义114
4.6.2操作函数114
4.6.3 C+++节点115
4.6.4 C+++迭代器117
4.6.5 C+++数据块链118
4.7键值对120
4.7.1简单键值对120
4.7.2散列表键值对121
4.8总结121
第5章Nginx开发综述123
5.1最简单的模块123
5.1.1模块设计124
5.1.2配置解析124
5.1.3处理函数126
5.1.4模块集成128
5.1.5编译脚本和命令129
5.1.6测试验证130
5.2开发基本流程131
5.2.1设计131
5.2.2开发132
5.2.3编译133
5.2.4测试验证133
5.2.5调优133
5.2.6流程图133
5.3编译脚本134
5.3.1运行机制134
5.3.2使用的变量135
5.3.3模块脚本135
5.3.4两种脚本格式136
5.3.5旧式编译脚本136
5.4总结137
第6章Nginx模块体系139
6.1模块架构139
6.1.1结构定义139
6.1.2模块的签名141
6.1.3模块的种类142
6.1.4模块的函数指针表143
6.1.5模块的类图144
6.1.6模块的组织形式145
6.1.7模块的初始化147
6.1.8模块的动态加载150
6.2配置解析152
6.2.1结构定义152
6.2.2配置解析的基本流程156
6.2.3配置数据的存储模型157
6.2.4访问配置数据163
6.2.5确定配置数据的位置163
6.2.6配置解析函数165
6.2.7配置数据的合并166
6.2.8配置指令的类型167
6.3源码分析168
6.3.1 ngx_core_module168
6.3.2 ngx_errlog_ module171
6.4 C++封装172
6.4.1 NgxModuleConfiig172
6.4.2 NgxModule176
6.4.3 NgxTake178
6.4.4 NGX MODULE NULL180
6.5 C++开发模块180
6.5.1模块的基本组成180
6.5.2配置信息类181
6.5.3业务逻辑类183
6.5.4模块集成类184
6.5.5实现源文件186
6.5.6增加更多功能187
6.6总结187
第7章NginxHTTP框架综述191
7.1框架简介191
7.1.1模块分类191
7.1.2处理流程192
7.1.3请求结构体194
7.1.4请求的处理阶段195
7.1.5请求的环境数据197
7.2处理引擎198
7.2.1函数原型198
7.2.2处理函数的存储方式198
7.2.3内容处理函数199
7.2.4引擎的数据结构200
7.2.5引擎的初始化201
7.2.6引擎的运行机制202
7.2.7日志阶段的处理205
7.3过滤引擎205
7.3.1函数原型206
7.3.2过滤函数链表206
7.3.3过滤函数的顺序207
7.3.4过滤链表的运行机制209
7.3.5请求体过滤210
7.4源码分析211
7.4.1 ngx_ http_static_ module211
7.4.2 ngx_ http_not_ modifiied fiilter_module212
7.5 C++封装213
7.5.1 NgxModuleCtx213
7.5.2 NgxHttpCoreModule215
7.5.3 NgxFilter217
7.6总结219
第8章NginxHTTP请求处理221
8.1状态码221
8.2请求结构体222
8.3请求行223
8.3.1请求方法223
8.3.2协议版本号224
8.3.3资源标识符224
8.4请求头225
8.5请求体226
8.5.1结构定义226
8.5.2操作函数227
8.6响应头227
8.6.1结构定义228
8.6.2操作函数228
8.7响应体229
8.8源码分析229
8.8.1 ngx_ http_static_ module230
8.8.2 ngx http_ not_ modifiied fiilter_module231
8.9 C++封装232
8.9.1 NgxHeaders232
8.9.2 NgxRequestBody235
8.9.3 NgxRequest236
8.9.4 NgxResponse238
8.10开发handler模块241
8.10.1模块设计241
8.10.2配置信息类241
8.10.3业务逻辑类242
8.10.4模块集成类243
8.10.5实现源文件245
8.10.6编译脚本245
8.10.7测试验证246
8.11开发fiilter模块246
8.11.1模块设计246
8.11.2配置信息类246
8.11.3环境数据类247
8.11.4业务逻辑类248
8.11.5模块集成类251
8.11.6实现源文件252
8.11.7编译脚本253
8.11.8测试验证253
8.12总结253
第9章NginxHTTP请求转发255
9.1框架简介255
9.1.1工作原理256
9.1.2请求结构体257
9.1.3上游结构体258
9.1.4上游配置参数260
9.2请求转发机制261
9.2.1回调函数261
9.2.2初始化263
9.2.3设置连接参数264
9.2.4启动连接265
9.2.5处理数据265
9.3负载均衡机制266
9.3.1结构定义267
9.3.2初始化模块入口271
9.3.3初始化地址列表272
9.3.4初始化算法274
9.3.5执行算法274
9.4源码分析275
9.4.1 ngx_http_ memcached_ module275
9.4.2 ngx httpv upstream_ ip_ hash_module278
9.5 C++封装281
9.5.1 NgxUpstream281
9.5.2 NgxUpstreamHelper283
9.5.3 NgxHttpUpstreamModule285
9.5.4 NgxLoadBalance287
9.6开发upstream模块288
9.6.1模块设计288
9.6.2配置信息类288
9.6.3业务逻辑类289
9.6.4模块集成类292
9.6.5实现源文件293
9.6.6编译脚本293
9.6.7测试验证294
9.7开发load-balance模块294
9.7.1模块设计294
9.7.2配置信息类294
9.7.3业务逻辑类295
9.7.4模块集成类297
9.7.5实现源文件298
9.7.6编译脚本299
9.7.7测试验证299
9.8总结299
第10章NginxHTTP子请求301
10.1子请求简介301
10.1.1工作原理302
10.1.2请求结构体303
10.1.3回调函数304
10.1.4待处理请求链表306
10.1.5子请求存储结构306
10.2子请求运行机制307
10.2.1创建子请求307
10.2.2处理引擎311
10.2.3数据整理312
10.3 C++封装314
10.3.1 NgxSubRequestHandler314
10.3.2 NgxSubRequest316
10.4数据回传模块317
10.4.1模块设计317
10.4.2环境数据类317
10.4.3业务逻辑类319
10.4.4模块集成类321
10.4.5编译脚本322
10.5在模块里使用子请求323
10.5.1模块设计323
10.5.2配置信息类323
10.5.3业务逻辑类324
10.5.4测试验证327
10.6总结328
第11章Nginx变量329
11.1结构定义329
11.1.1变量值329
11.1.2变量访问对象330
11.1.3变量的存储331
11.1.4请求结构体331
11.2运行机制332
11.2.1注册变量333
11.2.2获取变量333
11.2.3修改变量334
11.3复杂变量334
11.3.1结构定义334
11.3.2运行机制335
11.4 C++封装335
11.4.1 NgxVariableValue336
11.4.2 NgxVariable337
11.4.3 NgxVarManager339
11.4.4 NgxVariables340
11.4.5 NgxComplexValue340
11.5在模块里使用变量341
11.5.1添加变量341
11.5.2读写变量343
11.6在模块里使用复杂变量343
11.6.1配置信息类344
11.6.2业务逻辑类344
11.6.3模块集成类344
11.6.4测试验证344
11.7总结345
第12章Nginx辅助设施347
12.1摘要算法347
12.1.1 MD5347
12.1.2 SHA-1348
12.1.3 MurmurHash349
12.1.4 C+++封装349
12.2编码和解码352
12.2.1 CRC校验352
12.2.2 Base64编码解码353
12.2.3 URI编码解码354
12.2.4 HTML和JSON编码355
12.3正则表达式356
12.4共享内存356
12.4.1结构定义357
12.4.2操作函数357
12.4.3 C+++共享内存358
12.5总结359
第13章Nginx进程机制361
13.1基本系统调用361
13.1.1 errno361
13.1.2 getrlimit362
13.2进程系统调用362
13.2.1 getpid362
13.2.2 fork363
13.2.3 waitpid363
13.3信号系统调用364
13.3.1 kill364
13.3.2 sigaction365
13.3.3 sigsuspend365
13.4结构定义365
13.4.1 ngx_ cycle t365
13.4.2 ngx_core_ conf t366
13.4.3 ngx_process t367
13.5全局变量368
13.5.1命令行相关368
13.5.2操作系统相关369
13.5.3进程功能相关369
13.5.4信号功能相关370
13.6启动过程370
13.6.1基本流程370
13.6.2解析命令行371
13.6.3版本和帮助信息372
13.6.4初始化cycle372
13.6.5测试配置374
13.6.6发送信号374
13.6.7守护进程化374
13.6.8启动工作进程375
13.6.9流程图376
13.7信号处理377
13.7.1信号处理函数377
13.7.2发送信号378
13.7.3处理信号378
13.8单进程模式379
13.8.1 single进程379
13.8.2 single进程流程图381
13.9多进程模式382
13.9.1产生子进程382
13.9.2 master进程383
13.9.3 master进程流程图387
13.9.4 worker进程388
13.9.5 worker进程流程图389
13.10总结390
第14章Nginx事件机制393
14.1基本系统调用393
14.1.1 errno394
14.1.2 ioctl394
14.1.3 setitimer394
14.1.4 gettimeofday395
14.2 socket系统调用395
14.2.1 socket396
14.2.2 bind396
14.2.3 listen396
14.2.4 accept396
14.2.5 connect397
14.2.6 recv397
14.2.7 send397
14.2.8 setsockopt398
14.2.9 close398
14.2.10函数关系图398
14.3 epoll系统调用399
14.3.1 epoll_ create400
14.3.2 epoll_ctl400
14.3.3 epoll_ wait401
14.3.4 LT和ET401
14.3.5函数关系图402
14.4结构定义403
14.4.1 ngx_ event t403
14.4.2 ngx connection_ t404
14.4.3 ngx_listening_ t405
14.4.4 ngx_ cycle t407
14.4.5 ngx_ os_ io_ t408
14.4.6 ngx_event_ actions t411
14.4.7 ngx_posted events413
14.4.8结构关系图415
14.5定时器415
14.5.1红黑树415
14.5.2操作函数416
14.5.3超时处理416
14.6模块体系419
14.6.1函数指针表419
14.6.2模块的组织形式420
14.6.3核心配置422
14.6.4 epoll模块423
14.7全局变量425
14.7.1更新时间相关425
14.7.2事件机制相关426
14.7.3负载均衡相关426
14.7.4统计相关427
14.8运行机制427
14.8.1模块初始化427
14.8.2进程初始化429
14.8.3基本参数初始化429
14.8.4 epoll初始化430
14.8.5连接池初始化431
14.8.6监听端口初始化433
14.8.7初始化流程图434
14.8.8添加事件435
14.8.9删除事件439
14.8.10处理事件440
14.8.11接受连接444
14.8.12负载均衡447
14.8.13避免阻塞452
14.9总结452
第15章Nginx多线程机制455
15.1 eventfd系统调用455
15.2 pthread系统调用456
15.2.1 pthread_create456
15.2.2 pthread exit457
15.3结构定义457
15.3.1 ngx_thread_ task_ t457
15.3.2 ngx_thread_pool_queue_t458
15.3.3 ngx_thread_pool_t458
15.3.4结构关系图459
15.4事件通知460
15.4.1函数接口460
15.4.2初始化460
15.4.3发送通知461
15.4.4处理通知462
15.5运行机制463
15.5.1完成任务队列463
15.5.2创建线程池463
15.5.3创建任务464
15.5.4投递任务465
15.5.5执行任务466
15.5.6任务完成回调468
15.5.7销毁线程池468
15.6在模块里使用多线程469
15.6.1模块设计470
15.6.2配置信息类470
15.6.3业务逻辑类470
15.6.4测试验证474
15.7总结474
第16章Nginx Stream机制477
16.1模块体系477
16.1.1函数指针表477
16.1.2基础模块478
16.1.3核心模块480
16.1.4结构关系图481
16.1.5存储模型482
16.2监听端口483
16.2.1结构定义483
16.2.2解析配置485
16.2.3启动监听489
16.3处理引擎491
16.3.1阶段定义491
16.3.2函数原型491
16.3.3处理函数的存储方式492
16.3.4引擎数据结构492
16.3.5结构关系图493
16.3.6引擎的初始化493
16.4过滤引擎495
16.4.1函数原型495
16.4.2过滤函数链表495
16.5运行机制496
16.5.1会话结构体496
16.5.2创建会话497
16.5.3执行引擎500
16.5.4通用阶段处理501
16.5.5预读数据502
16.5.6产生响应数据506
16.5.7过滤数据506
16.5.8 结束会话506
16.6开发stream模块507
16.6.1 C+++封装507
16.6.2 discard协议508
16.6.3 time协议510
16.6.4 chargen协议512
16.7总结514
第17章NginxHTTP机制517
17.1结构定义517
17.1.1 ngx_ http_state_e517
17.1.2 ngx_ http_ connection_t518
17.1.3 ngx_http_request_ t518
17.2初始化连接519
17.2.1建立连接520
17.2.2等待数据521
17.2.3读取请求头524
17.3执行引擎528
17.3.1初始化引擎528
17.3.2通用阶段530
17.3.3改写阶段531
17.3.4访问控制阶段532
17.3.5内容产生阶段533
17.4处理请求体534
17.4.1丢弃缓冲区数据535
17.4.2读取并丢弃数据536
17.4.3读事件处理函数537
17.4.4启动丢弃处理538
17.5发送数据540
17.5.1发送初始化540
17.5.2事件处理函数541
17.6结束请求543
17.6.1释放请求资源543
17.6.2检查引用计数结束请求544
17.6.3检查状态结束请求545
17.6.4综合处理结束请求546
17.7总结548
第18章Nginx与设计模式551
18.1设计模式简介551
18.2框架级别的模式551
18.3业务级别的模式553
18.4代码级别的模式554
18.5总结556
第19章OpenResty开发557
19.1简介557
19.1.1历史558
19.1.2版本559
19.1.3组成559
19.1.4性能561
19.1.5安装562
19.1.6目录结构563
19.1.7命令行工具564
19.1.8参考手册565
19.2 Lua语言566
19.2.1注释566
19.2.2数据类型567
19.2.3变量568
19.2.4运算569
19.2.5语句570
19.2.6函数572
19.2.7表574
19.2.8标准库575
19.2.9模块576
19.3 LuaJIT577
19.3.1 continue578
19.3.2 bit578
19.3.3 ffii579
19.4 Lua模块581
19.4.1指令简介581
19.4.2配置指令581
19.4.3功能指令582
19.4.4指令关系图584
19.4.5应用开发流程584
19.5功能接口585
19.5.1运行日志585
19.5.2时间与日期586
19.5.3变量587
19.5.4正则表达式587
19.5.5请求处理588
19.5.6请求转发590
19.5.7子请求592
19.5.8 定时器592
19.5.9共享内存593
19.6应用实例594
19.6.1处理请求594
19.6.2过滤请求595
19.6.3转发请求596
19.6.4子请求597
19.7 Stream Lua模块598
19.7.1功能接口598
19.7.2 discard599
19.7.3 time599
19.7.4 chargen600
19.7.5 echo600
19.8 lua-resty库601
19.8.1 core601
19.8.2 cjson602
19.8.3 redis603
19.9总结603
第20章 结束语605
20.1本书的遗憾605
20.2下一步605
20.3临别赠言606
附录A推荐书目607
附录B GDB调试简介609
附录C Nginx C++模块简介611
附录D Nginx的字符串格式化613
附录E nginScript简介615
热门推荐
- 2977163.html
- 2667445.html
- 2225408.html
- 2993259.html
- 2672133.html
- 2948098.html
- 1921642.html
- 151085.html
- 1660990.html
- 3646746.html
- http://www.ickdjs.cc/book_2360990.html
- http://www.ickdjs.cc/book_413538.html
- http://www.ickdjs.cc/book_772868.html
- http://www.ickdjs.cc/book_3018505.html
- http://www.ickdjs.cc/book_3304658.html
- http://www.ickdjs.cc/book_1139922.html
- http://www.ickdjs.cc/book_3304393.html
- http://www.ickdjs.cc/book_2050037.html
- http://www.ickdjs.cc/book_1252370.html
- http://www.ickdjs.cc/book_1026347.html