注重体验与质量的电子书资源下载网站
分类于: 编程语言 计算机基础 互联网 人工智能
简介
深入理解Nginx:模块开发与架构解析 豆 8.4分
资源最后更新于 2020-03-29 04:03:14
作者:陶辉
出版社:出版社机械工业出版社
出版日期:2013-03
ISBN:9787111414780
文件格式: pdf
简介· · · · · ·
本书是阿里巴巴资深Nginx技术专家呕心沥血之作,是作者多年的经验结晶,也是目前市场上唯一一本通过还原Nginx设计思想,剖析Nginx架构来帮助读者快速高效开发HTTP模块的图书。本书首先通过介绍官方Nginx的基本用法和配置规则,帮助读者了解一般Nginx模块的用法,然后重点介绍如何开发HTTP模块(含HTTP过滤模块)来得到定制的Nginx,其中包括开发一个功能复杂的模块所需要了解的各种知识,如Nginx的基础数据结构、配置项的解析、记录日志的工具以及upstream、subrequest的使用方法等。在此基础上,综合Nginx框架代码分析Nginx的架构,介绍其设计理念和技巧,进一步帮助读者自由、有效地开发出功能丰富、性能一流的Nginx模块。陶辉,毕业于西安交通大学计算机科学与技术专业,曾就职于华为中央软件部、腾讯QQ空间、思科中国CRDC等公司,目前在阿里巴巴云计算公司的飞天团队工作,研究方向为介于IaaS和PaaS间的弹性计算,多年以来专注于Nginx的定制化应用,对Nginx的设计与特性有深刻认识,实战经验丰富,编写过许多优秀的Nginx模块并应用于企业级产品中,同时撰写了大量关于Nginx的技术文章。擅长Linux环境下高性能服务器的开发,以及分布式环境下海量数据存储的设计开发。
目录
前言
为什么要写这本书
读者对象
背景知识
如何阅读本书
勘误和支持
致谢
第一部分 Nginx能帮我们做什么
第1章 研究Nginx前的准备工作
1.1 Nginx是什么
1.2 为什么选择Nginx
1.3 准备工作
1.4 编译安装Nginx
1.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模块编译进Nginx
3.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_t
8.4 Nginx启动时框架的处理流程
8.5 worker进程是如何工作的
8.6 master进程是如何工作的
8.7 小结
第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/O
9.10 小结
第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 启动upstream
12.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 小结