展开全部

主编推荐语

带你清晰认识整个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 小结
展开全部

评分及书评

评分不足
2个评分
  • 用户头像
    给这本书评了
    5.0

    Nginx 是跨平台的服务器,然而这本书将只针对于最常见的 Linux 操作系统进行分析,这样做一方面是篇幅所限,另一方面则是本书的写作目的主要在于告诉大家如何基于 Nginx 编写代码,而不是怎样在一个具体的操作系统上修改配置使用 Nginx。因此,即使本书以 Linux 系统为代表讲述 Nginx,也不会影响使用其他操作系统的读者阅读,操作系统的差别相对于本书内容的影响实在是非常小。

      转发
      评论
      用户头像
      给这本书评了
      2.0
      咔咔咔就喽代码

      不接地气,大篇幅介绍代码,堆页数

        转发
        评论

      出版方

      机械工业出版社有限公司

      机械工业出版社是全国优秀出版社,自1952年成立以来,坚持为科技、为教育服务,以向行业、向学校提供优质、权威的精神产品为宗旨,以“服务社会和人民群众需求,传播社会主义先进文化”为己任,产业结构不断完善,已由传统的图书出版向着图书、期刊、电子出版物、音像制品、电子商务一体化延伸,现已发展为多领域、多学科的大型综合性出版社,涉及机械、电工电子、汽车、计算机、经济管理、建筑、ELT、科普以及教材、教辅等领域。