科技
类型
8.6
豆瓣评分
可以朗读
语音朗读
3223千字
字数
2016-02-01
发行日期
展开全部
主编推荐语
带你清晰认识整个Nginx架构,并实战定制自己的Nginx。
内容简介
为了不让读者陷入代码的“汪洋大海”中,在本书中大量使用了图表,这样可以使读者快速、大体地了解流程和原理,在这基础上,如果读者还希望了解代码是如何实现的,可以针对性地阅读源代码中的相应方法。在代码的关键地方会通过添加注释的方式加以说明。希望这种方式能够帮助读者减少阅读花费的时间,更快、更好地把握住Nginx,同时深入到细节中。
本书包括四大部分:Nginx能帮我做什么;如何编写一个定制的httpmodule;深入Nginx;实战。第一部分针对初级读者,介绍Nginx关于获取编译运行的基本知识。第二部分针对中级读者,以一个例子为主线,告诉读者如何开发一个http模块,这部分读者不需要深入了解Nginx的细节,只需要知道如何实现一个基本的http模块。第三部分针对高级读者,这是本书的重点,彻底解析Nginx架构,深入探讨Nginx各种设计的目的与意义,并对第二部分使用到的一些特性进行代码设计实现上的探索。第四部分针对中高级读者,以Tengine的开源模块为例,帮助读者从实战角度理解第二、三部分描述的内容。
目录
- 版权信息
- 前言
- 第一部分 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 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/O
- 9.10 TCP协议与Nginx
- 9.11 小结
- 第10章 HTTP框架的初始化
- 10.1 HTTP框架概述
- 10.2 管理HTTP模块的配置项
- 10.3 监听端口的管理
- 10.4 schmerver的快速检索
- 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 小结
- 第15章 变量
- 15.1 使用内部变量开发模块
- 15.2 内部变量工作原理
- 15.3 定义内部变量
- 15.4 外部变量与脚本引擎
- 15.5 小结
- 第16章 slab共享内存
- 16.1 操作slab共享内存的方法
- 16.2 使用slab共享内存池的例子
- 16.3 slab内存管理的实现原理
- 16.4 小结
展开全部
出版方
机械工业出版社有限公司
机械工业出版社是全国优秀出版社,自1952年成立以来,坚持为科技、为教育服务,以向行业、向学校提供优质、权威的精神产品为宗旨,以“服务社会和人民群众需求,传播社会主义先进文化”为己任,产业结构不断完善,已由传统的图书出版向着图书、期刊、电子出版物、音像制品、电子商务一体化延伸,现已发展为多领域、多学科的大型综合性出版社,涉及机械、电工电子、汽车、计算机、经济管理、建筑、ELT、科普以及教材、教辅等领域。