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

作者

罗剑锋(网名Chrono)在1996年就读于东北财经大学;1997年开始接触C/C++;1998年参加计算机软件专业技术资格和水平考试,获高级程序员资质;2003年毕业于北京理工大学,获计算机专业硕士学位。主要研究方向为C/C++、设计模式、高性能网络服务器开发,业余爱好是阅读、旅游、欣赏音乐和电影。

查看全部
目录

内容简介

前言

第0章 导读

0.1 关于本书

0.2 读者对象

0.3 读者要求

0.4 运行环境

0.5 本书的结构

0.6 如何阅读本书

0.7 本书的源码

注释

第1章 Nginx入门

1.1 关于Nginx

1.2 安装Nginx

1.3 配置Nginx

1.4 总结

注释

第2章 Nginx开发准备

2.1 开发环境

2.2 目录结构

2.3 源码特点

2.4 使用C++

2.5 C++包装类

2.6 总结

注释

第3章 Nginx基础设施

3.1 头文件

3.2 整数类型

3.3 错误处理

3.4 内存池

3.5 字符串

3.6 时间与日期

3.7 运行日志

3.8 总结

注释

第4章 Nginx高级数据结构

4.1 动态数组

4.2 单向链表

4.3 双端队列

4.4 红黑树

4.5 缓冲区

4.6 数据块链

4.7 键值对

4.8 总结

注释

第5章 Nginx开发综述

5.1 最简单的模块

5.2 开发基本流程

5.3 编译脚本

5.4 总结

注释

第6章 Nginx模块体系

6.1 模块架构

6.2 配置解析

6.3 源码分析

6.4 C++封装

6.5 C++开发模块

6.6 总结

注释

第7章 Nginx HTTP框架综述

7.1 框架简介

7.2 处理引擎

7.3 过滤引擎

7.4 源码分析

7.5 C++封装

7.6 总结

注释

第8章 Nginx HTTP请求处理

8.1 状态码

8.2 请求结构体

8.3 请求行

8.4 请求头

8.5 请求体

8.6 响应头

8.7 响应体

8.8 源码分析

8.9 C++封装

8.10 开发handler模块

8.11 开发filter模块

8.12 总结

注释

第9章 Nginx HTTP请求转发

9.1 框架简介

9.2 请求转发机制

9.3 负载均衡机制

9.4 源码分析

9.5 C++封装

9.6 开发upstream模块

9.7 开发load-balance模块

9.8 总结

注释

第10章 Nginx HTTP子请求

10.1 子请求简介

10.2 子请求运行机制

10.3 C++封装

10.4 数据回传模块

10.5 在模块里使用子请求

10.6 总结

注释

第11章 Nginx变量

11.1 结构定义

11.2 运行机制

11.3 复杂变量

11.4 C++封装

11.5 在模块里使用变量

11.6 在模块里使用复杂变量

11.7 总结

注释

第12章 Nginx辅助设施

12.1 摘要算法

12.2 编码和解码

12.3 正则表达式

12.4 共享内存

12.5 总结

注释

第13章 Nginx进程机制

13.1 基本系统调用

13.2 进程系统调用

13.3 信号系统调用

13.4 结构定义

13.5 全局变量

13.6 启动过程

13.7 信号处理

13.8 单进程模式

13.9 多进程模式

13.10 总结

注释

第14章 Nginx事件机制

14.1 基本系统调用

14.2 socket系统调用

14.3 epoll系统调用

14.4 结构定义

14.5 定时器

14.6 模块体系

14.7 全局变量

14.8 运行机制

14.9 总结

注释

第15章 Nginx多线程机制

15.1 eventfd系统调用

15.2 pthread系统调用

15.3 结构定义

15.4 事件通知

15.5 运行机制

15.6 在模块里使用多线程

15.7 总结

注释

第16章 Nginx Stream机制

16.1 模块体系

16.2 监听端口

16.3 处理引擎

16.4 过滤引擎

16.5 运行机制

16.6 开发stream模块

16.7 总结

注释

第17章 Nginx HTTP机制

17.1 结构定义

17.2 初始化连接

17.3 执行引擎

17.4 处理请求体

17.5 发送数据

17.6 结束请求

17.7 总结

注释

第18章 Nginx与设计模式

18.1 设计模式简介

18.2 框架级别的模式

18.3 业务级别的模式

18.4 代码级别的模式

18.5 总结

注释

第19章 OpenResty开发

19.1 简介

19.2 Lua语言

19.3 LuaJIT

19.4 Lua模块

19.5 功能接口

19.6 应用实例

19.7 StreamLua模块

19.8 lua-resty库

19.9 总结

注释

第20章 结束语

20.1 本书的遗憾

20.2 下一步

20.3 临别赠言

附录A 推荐书目

附录B GDB调试简介

注释

附录C Nginx C++模块简介

附录D Nginx的字符串格式化

附录E nginScript简介

注释

查看全部
书评
查看更多
请您登录后发表评论 登录 | 注册
我的评分:
提交
0/400