Nginx模块开发指南:使用C++11和Boost程序库

Nginx模块开发指南:使用C++11和Boost程序库 下载 mobi epub pdf 电子书 2024


简体网页||繁体网页
罗剑锋 著

下载链接在页面底部
点击这里下载
    


想要找书就要到 新城书站
立刻按 ctrl+D收藏本页
你会得到大惊喜!!

发表于2024-11-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模块开发指南:使用C++11和Boost程序库 mobi epub pdf txt 电子书 格式下载 2024


分享链接




相关图书


本站所有内容均为互联网搜索引擎提供的公开搜索信息,本站不存储任何数据与内容,任何内容与数据均与本站无关,如有需要请联系相关搜索引擎包括但不限于百度google,bing,sogou

友情链接

© 2024 book.cndgn.com All Rights Reserved. 新城书站 版权所有