目录前言第一部分 Nginx能帮我们做什么第1章 研究Nginx前的准备工作1.1 Nginx是什么1.2 为什么选择Nginx1.3 准备工作1.4 编译安装Nginx1.5 configure详解1.6 Nginx的命令行控制1.7 小结第2章 Nginx的配置2.1 运行中的Nginx进程间的关系2.2 Nginx配置的通用语法2.3 Nginx服务的基本配置2.4 用HTTP核心模块配置一个静态Web服务器2.5 用HTTP proxy module配置一个反向代理服务器2.6 小结第二部分 如何编写HTTP模块第3章 开发一个简单的HTTP模块3.1 如何调用HTTP模块3.2 准备工作3.3 如何将自己的HTTP模块编译进Nginx3.4 HTTP模块的数据结构3.5 定义自己的HTTP模块3.6 处理用户请求3.7 发送响应3.8 将磁盘文件作为包体发送3.9 用C 语言编写HTTP模块3.10 小结第4章 配置、error日志和请求上下文4.1 http配置项的使用场景4.2 怎样使用http配置4.3 HTTP配置模型4.4 error日志的用法4.5 请求的上下文4.6 小结第5章 访问第三方服务5.1 upstream的使用方式5.2 回调方法的执行场景5.3 使用upstream的示例5.4 subrequest的使用方式5.5 subrequest执行过程中的主要场景5.6 subrequest使用的例子5.7 小结第6章 开发一个简单的HTTP过滤模块6.1 过滤模块的意义6.2 过滤模块的调用顺序6.3 HTTP过滤模块的开发步骤6.4 HTTP过滤模块的简单例子6.5 小结第7章 Nginx提供的高级数据结构7.1 Nginx提供的高级数据结构概述7.2 ngx_queue_t双向链表7.3 ngx_array_t动态数组7.4 ngx_list_t单向链表7.5 ngx_rbtree_t红黑树7.6 ngx_radix_tree_t基数树7.7 支持通配符的散列表7.8 小结第三部分 深入Nginx第8章 Nginx基础架构8.1 Web服务器设计中的关键约束8.2 Nginx的架构设计8.3 Nginx框架中的核心结构体ngx_cycle_t8.4 Nginx启动时框架的处理流程8.5 worker进程是如何工作的8.6 master进程是如何工作的8.7 ngx_pool_t内存池8.8 小结第9章 事件模块9.1 事件处理框架概述9.2 Nginx事件的定义9.3 Nginx连接的定义9.4 ngx_events_module核心模块9.5 ngx_event_core_module事件模块9.6 epoll事件驱动模块9.7 定时器事件9.8 事件驱动框架的处理流程9.9 文件的异步I/O9.10 TCP协议与Nginx9.11 小结第10章 HTTP框架的初始化10.1 HTTP框架概述10.2 管理HTTP模块的配置项10.3 监听端口的管理10.4 server的快速检索10.5 location的快速检索10.6 HTTP请求的11个处理阶段10.7 HTTP框架的初始化流程10.8 小结第11章 HTTP框架的执行流程11.1 HTTP框架执行流程概述11.2 新连接建立时的行为11.3 第一次可读事件的处理11.4 接收HTTP请求行11.5 接收HTTP头部11.6 处理HTTP请求11.7 subrequest与post请求11.8 处理HTTP包体11.9 发送HTTP响应11.10 结束HTTP请求11.11 小结第12章 upstream机制的设计与实现12.1 upstream机制概述12.2 启动upstream12.3 与上游服务器建立连接12.4 发送请求到上游服务器12.5 接收上游服务器的响应头部12.6 不转发响应时的处理流程12.7 以下游网速优先来转发响应12.8 以上游网速优先来转发响应12.9 结束upstream请求12.10 小结第13章 邮件代理模块13.1 邮件代理服务器的功能13.2 邮件模块的处理框架13.3 初始化请求13.4 接收并解析客户端请求13.5 邮件认证13.6 与上游邮件服务器间的认证交互13.7 透传上游邮件服务器与客户端间的流13.8 小结第14章 进程间的通信机制14.1 概述14.2 共享内存14.3 原子操作14.4 Nginx频道14.5 信号14.6 信号量14.7 文件锁14.8 互斥锁14.9 小结第15章 变量15.1 使用内部变量开发模块15.2 内部变量工作原理15.3 定义内部变量15.4 外部变量与脚本引擎15.5 小结第16章 slab共享内存16.1 操作slab共享内存的方法16.2 使用slab共享内存池的例子16.3 slab内存管理的实现原理16.4 小结
评论