Nginx完全开发指南:使用C、C++和OpenResty

副标题:无

作   者:罗剑锋

分类号:

ISBN:9787121314575

微信扫一扫,移动浏览光盘

简介


Nginx 是著名的Web 服务器,性能优异,运行效率远超传统的Apache、Tomcat,广泛应用于国内外诸多*互联网公司。Nginx 的一个突出特点是其灵活优秀的模块化架构,可以在不修改核心的前提下增加任意功能,自2004 年发布至今,已经拥有百余个官方及非官方的功能模块(如proxy、mysql、redis、rtmp、lua等),使得Nginx 成长为了一个近乎“全能”的服务器软件。Nginx 功能强大,架构复杂,学习、维护和开发的门槛较高。为了帮助读者跨越这一障碍,本书深入*的Nginx 源码(Stable 1.12.0),详细剖析了模块体系、动态插件、功能框架、进程模型、事件驱动、线程池、TCP/UDP/HTTP 处理等Nginx 核心运行机制,在此基础上讲解如何使用C、C 、Lua、nginScript 等语言来增强扩展Nginx,让任何人都能够便捷、轻松地开发和定制Nginx,进而应用到自己的实际工作中,创造出更多的价值。本书结构严谨、脉络清晰、论述精确、详略得当、图文并茂,值得广大软件开发工程师、系统运维工程师和编程爱好者拥有。

目录


第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 关于Nginx ............................................ 9
1.1.1 历史 .................................................. 10
1.1.2 特点 .................................................. 10
1.1.3 进程模型 .......................................... 11
1.1.4 版本 .................................................. 12
1.2 安装Nginx .......................................... 13
1.2.1 准备工作 .......................................... 13
1.2.2 快速安装 .......................................... 14
1.2.3 运行命令 .......................................... 14
1.2.4 验证安装 .......................................... 16
1.2.5 定制安装 .......................................... 16
1.3 配置Nginx .......................................... 19
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 file 配置 ........................................... 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 测试验证 ............

已确认勘误

次印刷

页码 勘误内容 提交人 修订印次

Nginx完全开发指南:使用C、C++和OpenResty
    • 名称
    • 类型
    • 大小

    光盘服务联系方式: 020-38250260    客服QQ:4006604884

    意见反馈

    14:15

    关闭

    云图客服:

    尊敬的用户,您好!您有任何提议或者建议都可以在此提出来,我们会谦虚地接受任何意见。

    或者您是想咨询:

    用户发送的提问,这种方式就需要有位在线客服来回答用户的问题,这种 就属于对话式的,问题是这种提问是否需要用户登录才能提问

    Video Player
    ×
    Audio Player
    ×
    pdf Player
    ×
    Current View

    看过该图书的还喜欢

    some pictures

    解忧杂货店

    东野圭吾 (作者), 李盈春 (译者)

    loading icon