upload/duxiu_main2/【星空藏书馆】/【星空藏书馆】等多个文件/图书馆8号/综合书库②/书籍漫画/精品 2018 2019最新IT编程电子书/第V期/《Nginx完全开发指南:使用C、C 和OpenResty》【瑞客论坛 www.ruike1.com】.pdf
Nginx完全开发指南 : 使用C,C++和OpenResty 🔍
罗剑锋著
北京:电子工业出版社, 第1版, 北京市, 2017[民106
中文 [zh] · PDF · 256.8MB · 2017 · 📘 非小说类图书 · 🚀/duxiu/lgli/upload/zlib · Save
描述
本书深入最新的Nginx源码(Stable 1.12.0),详细剖析了模块体系,动态插件,功能框架,进程模型,事件驱动,线程池,TCP/UDP/HTTP处理等Nginx核心运行机制,在此基础上讲解如何使用C,C++,Lua,nginScript等语言来增强扩展Nginx,让任何人都能够便捷,轻松地开发和定制Nginx,进而应用到自己的实际工作中,创造出更多的价值.
备用文件名
lgli/罗剑锋 - Nginx完全开发指南:使用C、C++和OpenResty (2017, 电子工业出版社).pdf
备用文件名
zlib/Computers/Web Development/罗剑锋/Nginx完全开发指南:使用C、C++和OpenResty_16989222.pdf
备选标题
Nginx完全開發指南 : 使用C、C+ + 和OpenResty
备选作者
Adobe Acrobat 11.0.10
备选作者
羅劍鋒
备用出版商
Publishing House of Electronics Industry
备用出版商
電子工業出版社
备用版本
China, People's Republic, China
备用版本
Di 1 ban, Beijing, 2017
元数据中的注释
producers:
Adobe Acrobat Pro 11.0 Paper Capture Plug-in
Adobe Acrobat Pro 11.0 Paper Capture Plug-in
元数据中的注释
Bookmarks: p1 (p1): 第0章 导读
p1-1 (p1): 0.1关于本书
p1-2 (p2): 0.2读者对象
p1-3 (p3): 0.3读者要求
p1-4 (p4): 0.4运行环境
p1-5 (p4): 0.5本书的结构
p1-6 (p7): 0.6如何阅读本书
p1-7 (p8): 0.7本书的源码
p2 (p9): 第1章Nginx入门
p2-1 (p9): 1.1关于Nginx
p2-1-1 (p10): 1.1.1历史
p2-1-2 (p10): 1.1.2特点
p2-1-3 (p11): 1.1.3进程模型
p2-1-4 (p12): 1.1.4版本
p2-2 (p13): 1.2安装Nginx
p2-2-1 (p13): 1.2.1准备工作
p2-2-2 (p14): 1.2.2快速安装
p2-2-3 (p14): 1.2.3运行命令
p2-2-4 (p16): 1.2.4验证安装
p2-2-5 (p16): 1.2.5定制安装
p2-3 (p19): 1.3配置Nginx
p2-3-1 (p19): 1.3.1配置文件格式
p2-3-2 (p20): 1.3.2进程配置
p2-3-3 (p22): 1.3.3动态模块配置
p2-3-4 (p22): 1.3.4运行日志配置
p2-3-5 (p23): 1.3.5 events配置
p2-3-6 (p23): 1.3.6 http配置
p2-3-7 (p25): 1.3.7 server配置
p2-3-8 (p26): 1.3.8 location配置
p2-3-9 (p27): 1.3.9 fiile配置
p2-3-10 (p27): 1.3.10 upstream配置
p2-3-11 (p28): 1.3.11变量
p2-4 (p30): 1.4总结
p3 (p31): 第2章Nginx开发准备
p3-1 (p31): 2.1开发环境
p3-1-1 (p31): 2.1.1 C+++标准
p3-1-2 (p32): 2.1.2 Boost程序库
p3-2 (p32): 2.2目录结构
p3-3 (p34): 2.3源码特点
p3-3-1 (p34): 2.3.1代码风格
p3-3-2 (p34): 2.3.2代码优化
p3-3-3 (p34): 2.3.3面向对象思想
p3-4 (p35): 2.4使用C++
p3-4-1 (p35): 2.4.1实现原则
p3-4-2 (p36): 2.4.2代码风格
p3-4-3 (p36): 2.4.3编译脚本
p3-5 (p38): 2.5 C++包装类
p3-5-1 (p38): 2.5.1类定义
p3-5-2 (p39): 2.5.2构造和析构
p3-5-3 (p40): 2.5.3成员函数
p3-6 (p40): 2.6总结
p4 (p41): 第3章Nginx基础设施
p4-1 (p41): 3.1头文件
p4-1-1 (p41): 3.1.1 Nginx头文件
p4-1-2 (p42): 3.1.2 C+++头文件
p4-2 (p42): 3.2整数类型
p4-2-1 (p43): 3.2.1标准整数类型
p4-2-2 (p43): 3.2.2自定义整数类型
p4-2-3 (p44): 3.2.3无效值
p4-2-4 (p44): 3.2.4 C+++封装
p4-3 (p47): 3.3错误处理
p4-3-1 (p48): 3.3.1错误码定义
p4-3-2 (p48): 3.3.2 C+++异常
p4-4 (p50): 3.4内存池
p4-4-1 (p51): 3.4.1结构定义
p4-4-2 (p51): 3.4.2操作函数
p4-4-3 (p52): 3.4.3 C+++封装
p4-4-4 (p54): 3.4.4清理机制
p4-4-5 (p57): 3.4.5 C+++内存分配器
p4-5 (p58): 3.5字符串
p4-5-1 (p59): 3.5.1结构定义
p4-5-2 (p59): 3.5.2操作函数
p4-5-3 (p61): 3.5.3 C+++封装
p4-6 (p64): 3.6时间与日期
p4-6-1 (p64): 3.6.1时间结构定义
p4-6-2 (p64): 3.6.2时间操作函数
p4-6-3 (p65): 3.6.3日期结构定义
p4-6-4 (p66): 3.6.4日期操作函数
p4-6-5 (p67): 3.6.5 C+++封装时间
p4-6-6 (p68): 3.6.6 C+++封装日期
p4-7 (p70): 3.7运行日志
p4-7-1 (p71): 3.7.1结构定义
p4-7-2 (p71): 3.7.2操作函数
p4-7-3 (p72): 3.7.3 C+++封装
p4-8 (p74): 3.8总结
p5 (p77): 第4章Nginx高级数据结构
p5-1 (p77): 4.1动态数组
p5-1-1 (p77): 4.1.1结构定义
p5-1-2 (p79): 4.1.2操作函数
p5-1-3 (p79): 4.1.3 C+++动态数组
p5-2 (p83): 4.2单向链表
p5-2-1 (p83): 4.2.1结构定义
p5-2-2 (p84): 4.2.2操作函数
p5-2-3 (p85): 4.2.3 C+++迭代器
p5-2-4 (p87): 4.2.4 C+++单向链表
p5-3 (p90): 4.3双端队列
p5-3-1 (p90): 4.3.1结构定义
p5-3-2 (p91): 4.3.2操作函数
p5-3-3 (p93): 4.3.3 C+++节点
p5-3-4 (p95): 4.3.4 C+++迭代器
p5-3-5 (p97): 4.3.5 C+++双端队列
p5-4 (p101): 4.4红黑树
p5-4-1 (p101): 4.4.1节点结构定义
p5-4-2 (p102): 4.4.2树结构定义
p5-4-3 (p103): 4.4.3操作函数
p5-4-4 (p104): 4.4.4 C+++红黑树
p5-5 (p108): 4.5缓冲区
p5-5-1 (p108): 4.5.1结构定义
p5-5-2 (p110): 4.5.2操作函数
p5-5-3 (p111): 4.5.3 C+++缓冲区
p5-6 (p113): 4.6数据块链
p5-6-1 (p114): 4.6.1结构定义
p5-6-2 (p114): 4.6.2操作函数
p5-6-3 (p115): 4.6.3 C+++节点
p5-6-4 (p117): 4.6.4 C+++迭代器
p5-6-5 (p118): 4.6.5 C+++数据块链
p5-7 (p120): 4.7键值对
p5-7-1 (p120): 4.7.1简单键值对
p5-7-2 (p121): 4.7.2散列表键值对
p5-8 (p121): 4.8总结
p6 (p123): 第5章Nginx开发综述
p6-1 (p123): 5.1最简单的模块
p6-1-1 (p124): 5.1.1模块设计
p6-1-2 (p124): 5.1.2配置解析
p6-1-3 (p126): 5.1.3处理函数
p6-1-4 (p128): 5.1.4模块集成
p6-1-5 (p129): 5.1.5编译脚本和命令
p6-1-6 (p130): 5.1.6测试验证
p6-2 (p131): 5.2开发基本流程
p6-2-1 (p131): 5.2.1设计
p6-2-2 (p132): 5.2.2开发
p6-2-3 (p133): 5.2.3编译
p6-2-4 (p133): 5.2.4测试验证
p6-2-5 (p133): 5.2.5调优
p6-2-6 (p133): 5.2.6流程图
p6-3 (p134): 5.3编译脚本
p6-3-1 (p134): 5.3.1运行机制
p6-3-2 (p135): 5.3.2使用的变量
p6-3-3 (p135): 5.3.3模块脚本
p6-3-4 (p136): 5.3.4两种脚本格式
p6-3-5 (p136): 5.3.5旧式编译脚本
p6-4 (p137): 5.4总结
p7 (p139): 第6章Nginx模块体系
p7-1 (p139): 6.1模块架构
p7-1-1 (p139): 6.1.1结构定义
p7-1-2 (p141): 6.1.2模块的签名
p7-1-3 (p142): 6.1.3模块的种类
p7-1-4 (p143): 6.1.4模块的函数指针表
p7-1-5 (p144): 6.1.5模块的类图
p7-1-6 (p145): 6.1.6模块的组织形式
p7-1-7 (p147): 6.1.7模块的初始化
p7-1-8 (p150): 6.1.8模块的动态加载
p7-2 (p152): 6.2配置解析
p7-2-1 (p152): 6.2.1结构定义
p7-2-2 (p156): 6.2.2配置解析的基本流程
p7-2-3 (p157): 6.2.3配置数据的存储模型
p7-2-4 (p163): 6.2.4访问配置数据
p7-2-5 (p163): 6.2.5确定配置数据的位置
p7-2-6 (p165): 6.2.6配置解析函数
p7-2-7 (p166): 6.2.7配置数据的合并
p7-2-8 (p167): 6.2.8配置指令的类型
p7-3 (p168): 6.3源码分析
p7-3-1 (p168): 6.3.1 ngx_core_module
p7-3-2 (p171): 6.3.2 ngx_errlog_ module
p7-4 (p172): 6.4 C++封装
p7-4-1 (p172): 6.4.1 NgxModuleConfiig
p7-4-2 (p176): 6.4.2 NgxModule
p7-4-3 (p178): 6.4.3 NgxTake
p7-4-4 (p180): 6.4.4 NGX MODULE NULL
p7-5 (p180): 6.5 C++开发模块
p7-5-1 (p180): 6.5.1模块的基本组成
p7-5-2 (p181): 6.5.2配置信息类
p7-5-3 (p183): 6.5.3业务逻辑类
p7-5-4 (p184): 6.5.4模块集成类
p7-5-5 (p186): 6.5.5实现源文件
p7-5-6 (p187): 6.5.6增加更多功能
p7-6 (p187): 6.6总结
p8 (p191): 第7章NginxHTTP框架综述
p8-1 (p191): 7.1框架简介
p8-1-1 (p191): 7.1.1模块分类
p8-1-2 (p192): 7.1.2处理流程
p8-1-3 (p194): 7.1.3请求结构体
p8-1-4 (p195): 7.1.4请求的处理阶段
p8-1-5 (p197): 7.1.5请求的环境数据
p8-2 (p198): 7.2处理引擎
p8-2-1 (p198): 7.2.1函数原型
p8-2-2 (p198): 7.2.2处理函数的存储方式
p8-2-3 (p199): 7.2.3内容处理函数
p8-2-4 (p200): 7.2.4引擎的数据结构
p8-2-5 (p201): 7.2.5引擎的初始化
p8-2-6 (p202): 7.2.6引擎的运行机制
p8-2-7 (p205): 7.2.7日志阶段的处理
p8-3 (p205): 7.3过滤引擎
p8-3-1 (p206): 7.3.1函数原型
p8-3-2 (p206): 7.3.2过滤函数链表
p8-3-3 (p207): 7.3.3过滤函数的顺序
p8-3-4 (p209): 7.3.4过滤链表的运行机制
p8-3-5 (p210): 7.3.5请求体过滤
p8-4 (p211): 7.4源码分析
p8-4-1 (p211): 7.4.1 ngx_ http_static_ module
p8-4-2 (p212): 7.4.2 ngx_ http_not_ modifiied fiilter_module
p8-5 (p213): 7.5 C++封装
p8-5-1 (p213): 7.5.1 NgxModuleCtx
p8-5-2 (p215): 7.5.2 NgxHttpCoreModule
p8-5-3 (p217): 7.5.3 NgxFilter
p8-6 (p219): 7.6总结
p9 (p221): 第8章NginxHTTP请求处理
p9-1 (p221): 8.1状态码
p9-2 (p222): 8.2请求结构体
p9-3 (p223): 8.3请求行
p9-3-1 (p223): 8.3.1请求方法
p9-3-2 (p224): 8.3.2协议版本号
p9-3-3 (p224): 8.3.3资源标识符
p9-4 (p225): 8.4请求头
p9-5 (p226): 8.5请求体
p9-5-1 (p226): 8.5.1结构定义
p9-5-2 (p227): 8.5.2操作函数
p9-6 (p227): 8.6响应头
p9-6-1 (p228): 8.6.1结构定义
p9-6-2 (p228): 8.6.2操作函数
p9-7 (p229): 8.7响应体
p9-8 (p229): 8.8源码分析
p9-8-1 (p230): 8.8.1 ngx_ http_static_ module
p9-8-2 (p231): 8.8.2 ngx http_ not_ modifiied fiilter_module
p9-9 (p232): 8.9 C++封装
p9-9-1 (p232): 8.9.1 NgxHeaders
p9-9-2 (p235): 8.9.2 NgxRequestBody
p9-9-3 (p236): 8.9.3 NgxRequest
p9-9-4 (p238): 8.9.4 NgxResponse
p9-10 (p241): 8.10开发handler模块
p9-10-1 (p241): 8.10.1模块设计
p9-10-2 (p241): 8.10.2配置信息类
p9-10-3 (p242): 8.10.3业务逻辑类
p9-10-4 (p243): 8.10.4模块集成类
p9-10-5 (p245): 8.10.5实现源文件
p9-10-6 (p245): 8.10.6编译脚本
p9-10-7 (p246): 8.10.7测试验证
p9-11 (p246): 8.11开发fiilter模块
p9-11-1 (p246): 8.11.1模块设计
p9-11-2 (p246): 8.11.2配置信息类
p9-11-3 (p247): 8.11.3环境数据类
p9-11-4 (p248): 8.11.4业务逻辑类
p9-11-5 (p251): 8.11.5模块集成类
p9-11-6 (p252): 8.11.6实现源文件
p9-11-7 (p253): 8.11.7编译脚本
p9-11-8 (p253): 8.11.8测试验证
p9-12 (p253): 8.12总结
p10 (p255): 第9章NginxHTTP请求转发
p10-1 (p255): 9.1框架简介
p10-1-1 (p256): 9.1.1工作原理
p10-1-2 (p257): 9.1.2请求结构体
p10-1-3 (p258): 9.1.3上游结构体
p10-1-4 (p260): 9.1.4上游配置参数
p10-2 (p261): 9.2请求转发机制
p10-2-1 (p261): 9.2.1回调函数
p10-2-2 (p263): 9.2.2初始化
p10-2-3 (p264): 9.2.3设置连接参数
p10-2-4 (p265): 9.2.4启动连接
p10-2-5 (p265): 9.2.5处理数据
p10-3 (p266): 9.3负载均衡机制
p10-3-1 (p267): 9.3.1结构定义
p10-3-2 (p271): 9.3.2初始化模块入口
p10-3-3 (p272): 9.3.3初始化地址列表
p10-3-4 (p274): 9.3.4初始化算法
p10-3-5 (p274): 9.3.5执行算法
p10-4 (p275): 9.4源码分析
p10-4-1 (p275): 9.4.1 ngx_http_ memcached_ module
p10-4-2 (p278): 9.4.2 ngx httpv upstream_ ip_ hash_module
p10-5 (p281): 9.5 C++封装
p10-5-1 (p281): 9.5.1 NgxUpstream
p10-5-2 (p283): 9.5.2 NgxUpstreamHelper
p10-5-3 (p285): 9.5.3 NgxHttpUpstreamModule
p10-5-4 (p287): 9.5.4 NgxLoadBalance
p10-6 (p288): 9.6开发upstream模块
p10-6-1 (p288): 9.6.1模块设计
p10-6-2 (p288): 9.6.2配置信息类
p10-6-3 (p289): 9.6.3业务逻辑类
p10-6-4 (p292): 9.6.4模块集成类
p10-6-5 (p293): 9.6.5实现源文件
p10-6-6 (p293): 9.6.6编译脚本
p10-6-7 (p294): 9.6.7测试验证
p10-7 (p294): 9.7开发load-balance模块
p10-7-1 (p294): 9.7.1模块设计
p10-7-2 (p294): 9.7.2配置信息类
p10-7-3 (p295): 9.7.3业务逻辑类
p10-7-4 (p297): 9.7.4模块集成类
p10-7-5 (p298): 9.7.5实现源文件
p10-7-6 (p299): 9.7.6编译脚本
p10-7-7 (p299): 9.7.7测试验证
p10-8 (p299): 9.8总结
p11 (p301): 第10章NginxHTTP子请求
p11-1 (p301): 10.1子请求简介
p11-1-1 (p302): 10.1.1工作原理
p11-1-2 (p303): 10.1.2请求结构体
p11-1-3 (p304): 10.1.3回调函数
p11-1-4 (p306): 10.1.4待处理请求链表
p11-1-5 (p306): 10.1.5子请求存储结构
p11-2 (p307): 10.2子请求运行机制
p11-2-1 (p307): 10.2.1创建子请求
p11-2-2 (p311): 10.2.2处理引擎
p11-2-3 (p312): 10.2.3数据整理
p11-3 (p314): 10.3 C++封装
p11-3-1 (p314): 10.3.1 NgxSubRequestHandler
p11-3-2 (p316): 10.3.2 NgxSubRequest
p11-4 (p317): 10.4数据回传模块
p11-4-1 (p317): 10.4.1模块设计
p11-4-2 (p317): 10.4.2环境数据类
p11-4-3 (p319): 10.4.3业务逻辑类
p11-4-4 (p321): 10.4.4模块集成类
p11-4-5 (p322): 10.4.5编译脚本
p11-5 (p323): 10.5在模块里使用子请求
p11-5-1 (p323): 10.5.1模块设计
p11-5-2 (p323): 10.5.2配置信息类
p11-5-3 (p324): 10.5.3业务逻辑类
p11-5-4 (p327): 10.5.4测试验证
p11-6 (p328): 10.6总结
p12 (p329): 第11章Nginx变量
p12-1 (p329): 11.1结构定义
p12-1-1 (p329): 11.1.1变量值
p12-1-2 (p330): 11.1.2变量访问对象
p12-1-3 (p331): 11.1.3变量的存储
p12-1-4 (p331): 11.1.4请求结构体
p12-2 (p332): 11.2运行机制
p12-2-1 (p333): 11.2.1注册变量
p12-2-2 (p333): 11.2.2获取变量
p12-2-3 (p334): 11.2.3修改变量
p12-3 (p334): 11.3复杂变量
p12-3-1 (p334): 11.3.1结构定义
p12-3-2 (p335): 11.3.2运行机制
p12-4 (p335): 11.4 C++封装
p12-4-1 (p336): 11.4.1 NgxVariableValue
p12-4-2 (p337): 11.4.2 NgxVariable
p12-4-3 (p339): 11.4.3 NgxVarManager
p12-4-4 (p340): 11.4.4 NgxVariables
p12-4-5 (p340): 11.4.5 NgxComplexValue
p12-5 (p341): 11.5在模块里使用变量
p12-5-1 (p341): 11.5.1添加变量
p12-5-2 (p343): 11.5.2读写变量
p12-6 (p343): 11.6在模块里使用复杂变量
p12-6-1 (p344): 11.6.1配置信息类
p12-6-2 (p344): 11.6.2业务逻辑类
p12-6-3 (p344): 11.6.3模块集成类
p12-6-4 (p344): 11.6.4测试验证
p12-7 (p345): 11.7总结
p13 (p347): 第12章Nginx辅助设施
p13-1 (p347): 12.1摘要算法
p13-1-1 (p347): 12.1.1 MD5
p13-1-2 (p348): 12.1.2 SHA-1
p13-1-3 (p349): 12.1.3 MurmurHash
p13-1-4 (p349): 12.1.4 C+++封装
p13-2 (p352): 12.2编码和解码
p13-2-1 (p352): 12.2.1 CRC校验
p13-2-2 (p353): 12.2.2 Base64编码解码
p13-2-3 (p354): 12.2.3 URI编码解码
p13-2-4 (p355): 12.2.4 HTML和JSON编码
p13-3 (p356): 12.3正则表达式
p13-4 (p356): 12.4共享内存
p13-4-1 (p357): 12.4.1结构定义
p13-4-2 (p357): 12.4.2操作函数
p13-4-3 (p358): 12.4.3 C+++共享内存
p13-5 (p359): 12.5总结
p14 (p361): 第13章Nginx进程机制
p14-1 (p361): 13.1基本系统调用
p14-1-1 (p361): 13.1.1 errno
p14-1-2 (p362): 13.1.2 getrlimit
p14-2 (p362): 13.2进程系统调用
p14-2-1 (p362): 13.2.1 getpid
p14-2-2 (p363): 13.2.2 fork
p14-2-3 (p363): 13.2.3 waitpid
p14-3 (p364): 13.3信号系统调用
p14-3-1 (p364): 13.3.1 kill
p14-3-2 (p365): 13.3.2 sigaction
p14-3-3 (p365): 13.3.3 sigsuspend
p14-4 (p365): 13.4结构定义
p14-4-1 (p365): 13.4.1 ngx_ cycle t
p14-4-2 (p366): 13.4.2 ngx_core_ conf t
p14-4-3 (p367): 13.4.3 ngx_process t
p14-5 (p368): 13.5全局变量
p14-5-1 (p368): 13.5.1命令行相关
p14-5-2 (p369): 13.5.2操作系统相关
p14-5-3 (p369): 13.5.3进程功能相关
p14-5-4 (p370): 13.5.4信号功能相关
p14-6 (p370): 13.6启动过程
p14-6-1 (p370): 13.6.1基本流程
p14-6-2 (p371): 13.6.2解析命令行
p14-6-3 (p372): 13.6.3版本和帮助信息
p14-6-4 (p372): 13.6.4初始化cycle
p14-6-5 (p374): 13.6.5测试配置
p14-6-6 (p374): 13.6.6发送信号
p14-6-7 (p374): 13.6.7守护进程化
p14-6-8 (p375): 13.6.8启动工作进程
p14-6-9 (p376): 13.6.9流程图
p14-7 (p377): 13.7信号处理
p14-7-1 (p377): 13.7.1信号处理函数
p14-7-2 (p378): 13.7.2发送信号
p14-7-3 (p378): 13.7.3处理信号
p14-8 (p379): 13.8单进程模式
p14-8-1 (p379): 13.8.1 single进程
p14-8-2 (p381): 13.8.2 single进程流程图
p14-9 (p382): 13.9多进程模式
p14-9-1 (p382): 13.9.1产生子进程
p14-9-2 (p383): 13.9.2 master进程
p14-9-3 (p387): 13.9.3 master进程流程图
p14-9-4 (p388): 13.9.4 worker进程
p14-9-5 (p389): 13.9.5 worker进程流程图
p14-10 (p390): 13.10总结
p15 (p393): 第14章Nginx事件机制
p15-1 (p393): 14.1基本系统调用
p15-1-1 (p394): 14.1.1 errno
p15-1-2 (p394): 14.1.2 ioctl
p15-1-3 (p394): 14.1.3 setitimer
p15-1-4 (p395): 14.1.4 gettimeofday
p15-2 (p395): 14.2 socket系统调用
p15-2-1 (p396): 14.2.1 socket
p15-2-2 (p396): 14.2.2 bind
p15-2-3 (p396): 14.2.3 listen
p15-2-4 (p396): 14.2.4 accept
p15-2-5 (p397): 14.2.5 connect
p15-2-6 (p397): 14.2.6 recv
p15-2-7 (p397): 14.2.7 send
p15-2-8 (p398): 14.2.8 setsockopt
p15-2-9 (p398): 14.2.9 close
p15-2-10 (p398): 14.2.10函数关系图
p15-3 (p399): 14.3 epoll系统调用
p15-3-1 (p400): 14.3.1 epoll_ create
p15-3-2 (p400): 14.3.2 epoll_ctl
p15-3-3 (p401): 14.3.3 epoll_ wait
p15-3-4 (p401): 14.3.4 LT和ET
p15-3-5 (p402): 14.3.5函数关系图
p15-4 (p403): 14.4结构定义
p15-4-1 (p403): 14.4.1 ngx_ event t
p15-4-2 (p404): 14.4.2 ngx connection_ t
p15-4-3 (p405): 14.4.3 ngx_listening_ t
p15-4-4 (p407): 14.4.4 ngx_ cycle t
p15-4-5 (p408): 14.4.5 ngx_ os_ io_ t
p15-4-6 (p411): 14.4.6 ngx_event_ actions t
p15-4-7 (p413): 14.4.7 ngx_posted events
p15-4-8 (p415): 14.4.8结构关系图
p15-5 (p415): 14.5定时器
p15-5-1 (p415): 14.5.1红黑树
p15-5-2 (p416): 14.5.2操作函数
p15-5-3 (p416): 14.5.3超时处理
p15-6 (p419): 14.6模块体系
p15-6-1 (p419): 14.6.1函数指针表
p15-6-2 (p420): 14.6.2模块的组织形式
p15-6-3 (p422): 14.6.3核心配置
p15-6-4 (p423): 14.6.4 epoll模块
p15-7 (p425): 14.7全局变量
p15-7-1 (p425): 14.7.1更新时间相关
p15-7-2 (p426): 14.7.2事件机制相关
p15-7-3 (p426): 14.7.3负载均衡相关
p15-7-4 (p427): 14.7.4统计相关
p15-8 (p427): 14.8运行机制
p15-8-1 (p427): 14.8.1模块初始化
p15-8-2 (p429): 14.8.2进程初始化
p15-8-3 (p429): 14.8.3基本参数初始化
p15-8-4 (p430): 14.8.4 epoll初始化
p15-8-5 (p431): 14.8.5连接池初始化
p15-8-6 (p433): 14.8.6监听端口初始化
p15-8-7 (p434): 14.8.7初始化流程图
p15-8-8 (p435): 14.8.8添加事件
p15-8-9 (p439): 14.8.9删除事件
p15-8-10 (p440): 14.8.10处理事件
p15-8-11 (p444): 14.8.11接受连接
p15-8-12 (p447): 14.8.12负载均衡
p15-8-13 (p452): 14.8.13避免阻塞
p15-9 (p452): 14.9总结
p16 (p455): 第15章Nginx多线程机制
p16-1 (p455): 15.1 eventfd系统调用
p16-2 (p456): 15.2 pthread系统调用
p16-2-1 (p456): 15.2.1 pthread_create
p16-2-2 (p457): 15.2.2 pthread exit
p16-3 (p457): 15.3结构定义
p16-3-1 (p457): 15.3.1 ngx_thread_ task_ t
p16-3-2 (p458): 15.3.2 ngx_thread_pool_queue_t
p16-3-3 (p458): 15.3.3 ngx_thread_pool_t
p16-3-4 (p459): 15.3.4结构关系图
p16-4 (p460): 15.4事件通知
p16-4-1 (p460): 15.4.1函数接口
p16-4-2 (p460): 15.4.2初始化
p16-4-3 (p461): 15.4.3发送通知
p16-4-4 (p462): 15.4.4处理通知
p16-5 (p463): 15.5运行机制
p16-5-1 (p463): 15.5.1完成任务队列
p16-5-2 (p463): 15.5.2创建线程池
p16-5-3 (p464): 15.5.3创建任务
p16-5-4 (p465): 15.5.4投递任务
p16-5-5 (p466): 15.5.5执行任务
p16-5-6 (p468): 15.5.6任务完成回调
p16-5-7 (p468): 15.5.7销毁线程池
p16-6 (p469): 15.6在模块里使用多线程
p16-6-1 (p470): 15.6.1模块设计
p16-6-2 (p470): 15.6.2配置信息类
p16-6-3 (p470): 15.6.3业务逻辑类
p16-6-4 (p474): 15.6.4测试验证
p16-7 (p474): 15.7总结
p17 (p477): 第16章Nginx Stream机制
p17-1 (p477): 16.1模块体系
p17-1-1 (p477): 16.1.1函数指针表
p17-1-2 (p478): 16.1.2基础模块
p17-1-3 (p480): 16.1.3核心模块
p17-1-4 (p481): 16.1.4结构关系图
p17-1-5 (p482): 16.1.5存储模型
p17-2 (p483): 16.2监听端口
p17-2-1 (p483): 16.2.1结构定义
p17-2-2 (p485): 16.2.2解析配置
p17-2-3 (p489): 16.2.3启动监听
p17-3 (p491): 16.3处理引擎
p17-3-1 (p491): 16.3.1阶段定义
p17-3-2 (p491): 16.3.2函数原型
p17-3-3 (p492): 16.3.3处理函数的存储方式
p17-3-4 (p492): 16.3.4引擎数据结构
p17-3-5 (p493): 16.3.5结构关系图
p17-3-6 (p493): 16.3.6引擎的初始化
p17-4 (p495): 16.4过滤引擎
p17-4-1 (p495): 16.4.1函数原型
p17-4-2 (p495): 16.4.2过滤函数链表
p17-5 (p496): 16.5运行机制
p17-5-1 (p496): 16.5.1会话结构体
p17-5-2 (p497): 16.5.2创建会话
p17-5-3 (p500): 16.5.3执行引擎
p17-5-4 (p501): 16.5.4通用阶段处理
p17-5-5 (p502): 16.5.5预读数据
p17-5-6 (p506): 16.5.6产生响应数据
p17-5-7 (p506): 16.5.7过滤数据
p17-5-8 (p506): 16.5.8 结束会话
p17-6 (p507): 16.6开发stream模块
p17-6-1 (p507): 16.6.1 C+++封装
p17-6-2 (p508): 16.6.2 discard协议
p17-6-3 (p510): 16.6.3 time协议
p17-6-4 (p512): 16.6.4 chargen协议
p17-7 (p514): 16.7总结
p18 (p517): 第17章NginxHTTP机制
p18-1 (p517): 17.1结构定义
p18-1-1 (p517): 17.1.1 ngx_ http_state_e
p18-1-2 (p518): 17.1.2 ngx_ http_ connection_t
p18-1-3 (p518): 17.1.3 ngx_http_request_ t
p18-2 (p519): 17.2初始化连接
p18-2-1 (p520): 17.2.1建立连接
p18-2-2 (p521): 17.2.2等待数据
p18-2-3 (p524): 17.2.3读取请求头
p18-3 (p528): 17.3执行引擎
p18-3-1 (p528): 17.3.1初始化引擎
p18-3-2 (p530): 17.3.2通用阶段
p18-3-3 (p531): 17.3.3改写阶段
p18-3-4 (p532): 17.3.4访问控制阶段
p18-3-5 (p533): 17.3.5内容产生阶段
p18-4 (p534): 17.4处理请求体
p18-4-1 (p535): 17.4.1丢弃缓冲区数据
p18-4-2 (p536): 17.4.2读取并丢弃数据
p18-4-3 (p537): 17.4.3读事件处理函数
p18-4-4 (p538): 17.4.4启动丢弃处理
p18-5 (p540): 17.5发送数据
p18-5-1 (p540): 17.5.1发送初始化
p18-5-2 (p541): 17.5.2事件处理函数
p18-6 (p543): 17.6结束请求
p18-6-1 (p543): 17.6.1释放请求资源
p18-6-2 (p544): 17.6.2检查引用计数结束请求
p18-6-3 (p545): 17.6.3检查状态结束请求
p18-6-4 (p546): 17.6.4综合处理结束请求
p18-7 (p548): 17.7总结
p19 (p551): 第18章Nginx与设计模式
p19-1 (p551): 18.1设计模式简介
p19-2 (p551): 18.2框架级别的模式
p19-3 (p553): 18.3业务级别的模式
p19-4 (p554): 18.4代码级别的模式
p19-5 (p556): 18.5总结
p20 (p557): 第19章OpenResty开发
p20-1 (p557): 19.1简介
p20-1-1 (p558): 19.1.1历史
p20-1-2 (p559): 19.1.2版本
p20-1-3 (p559): 19.1.3组成
p20-1-4 (p561): 19.1.4性能
p20-1-5 (p562): 19.1.5安装
p20-1-6 (p563): 19.1.6目录结构
p20-1-7 (p564): 19.1.7命令行工具
p20-1-8 (p565): 19.1.8参考手册
p20-2 (p566): 19.2 Lua语言
p20-2-1 (p566): 19.2.1注释
p20-2-2 (p567): 19.2.2数据类型
p20-2-3 (p568): 19.2.3变量
p20-2-4 (p569): 19.2.4运算
p20-2-5 (p570): 19.2.5语句
p20-2-6 (p572): 19.2.6函数
p20-2-7 (p574): 19.2.7表
p20-2-8 (p575): 19.2.8标准库
p20-2-9 (p576): 19.2.9模块
p20-3 (p577): 19.3 LuaJIT
p20-3-1 (p578): 19.3.1 continue
p20-3-2 (p578): 19.3.2 bit
p20-3-3 (p579): 19.3.3 ffii
p20-4 (p581): 19.4 Lua模块
p20-4-1 (p581): 19.4.1指令简介
p20-4-2 (p581): 19.4.2配置指令
p20-4-3 (p582): 19.4.3功能指令
p20-4-4 (p584): 19.4.4指令关系图
p20-4-5 (p584): 19.4.5应用开发流程
p20-5 (p585): 19.5功能接口
p20-5-1 (p585): 19.5.1运行日志
p20-5-2 (p586): 19.5.2时间与日期
p20-5-3 (p587): 19.5.3变量
p20-5-4 (p587): 19.5.4正则表达式
p20-5-5 (p588): 19.5.5请求处理
p20-5-6 (p590): 19.5.6请求转发
p20-5-7 (p592): 19.5.7子请求
p20-5-8 (p592): 19.5.8 定时器
p20-5-9 (p593): 19.5.9共享内存
p20-6 (p594): 19.6应用实例
p20-6-1 (p594): 19.6.1处理请求
p20-6-2 (p595): 19.6.2过滤请求
p20-6-3 (p596): 19.6.3转发请求
p20-6-4 (p597): 19.6.4子请求
p20-7 (p598): 19.7 Stream Lua模块
p20-7-1 (p598): 19.7.1功能接口
p20-7-2 (p599): 19.7.2 discard
p20-7-3 (p599): 19.7.3 time
p20-7-4 (p600): 19.7.4 chargen
p20-7-5 (p600): 19.7.5 echo
p20-8 (p601): 19.8 lua-resty库
p20-8-1 (p601): 19.8.1 core
p20-8-2 (p602): 19.8.2 cjson
p20-8-3 (p603): 19.8.3 redis
p20-9 (p603): 19.9总结
p21 (p605): 第20章 结束语
p21-1 (p605): 20.1本书的遗憾
p21-2 (p605): 20.2下一步
p21-3 (p606): 20.3临别赠言
p22 (p607): 附录A推荐书目
p23 (p609): 附录B GDB调试简介
p24 (p611): 附录C Nginx C++模块简介
p25 (p613): 附录D Nginx的字符串格式化
p26 (p615): 附录E nginScript简介
p1-1 (p1): 0.1关于本书
p1-2 (p2): 0.2读者对象
p1-3 (p3): 0.3读者要求
p1-4 (p4): 0.4运行环境
p1-5 (p4): 0.5本书的结构
p1-6 (p7): 0.6如何阅读本书
p1-7 (p8): 0.7本书的源码
p2 (p9): 第1章Nginx入门
p2-1 (p9): 1.1关于Nginx
p2-1-1 (p10): 1.1.1历史
p2-1-2 (p10): 1.1.2特点
p2-1-3 (p11): 1.1.3进程模型
p2-1-4 (p12): 1.1.4版本
p2-2 (p13): 1.2安装Nginx
p2-2-1 (p13): 1.2.1准备工作
p2-2-2 (p14): 1.2.2快速安装
p2-2-3 (p14): 1.2.3运行命令
p2-2-4 (p16): 1.2.4验证安装
p2-2-5 (p16): 1.2.5定制安装
p2-3 (p19): 1.3配置Nginx
p2-3-1 (p19): 1.3.1配置文件格式
p2-3-2 (p20): 1.3.2进程配置
p2-3-3 (p22): 1.3.3动态模块配置
p2-3-4 (p22): 1.3.4运行日志配置
p2-3-5 (p23): 1.3.5 events配置
p2-3-6 (p23): 1.3.6 http配置
p2-3-7 (p25): 1.3.7 server配置
p2-3-8 (p26): 1.3.8 location配置
p2-3-9 (p27): 1.3.9 fiile配置
p2-3-10 (p27): 1.3.10 upstream配置
p2-3-11 (p28): 1.3.11变量
p2-4 (p30): 1.4总结
p3 (p31): 第2章Nginx开发准备
p3-1 (p31): 2.1开发环境
p3-1-1 (p31): 2.1.1 C+++标准
p3-1-2 (p32): 2.1.2 Boost程序库
p3-2 (p32): 2.2目录结构
p3-3 (p34): 2.3源码特点
p3-3-1 (p34): 2.3.1代码风格
p3-3-2 (p34): 2.3.2代码优化
p3-3-3 (p34): 2.3.3面向对象思想
p3-4 (p35): 2.4使用C++
p3-4-1 (p35): 2.4.1实现原则
p3-4-2 (p36): 2.4.2代码风格
p3-4-3 (p36): 2.4.3编译脚本
p3-5 (p38): 2.5 C++包装类
p3-5-1 (p38): 2.5.1类定义
p3-5-2 (p39): 2.5.2构造和析构
p3-5-3 (p40): 2.5.3成员函数
p3-6 (p40): 2.6总结
p4 (p41): 第3章Nginx基础设施
p4-1 (p41): 3.1头文件
p4-1-1 (p41): 3.1.1 Nginx头文件
p4-1-2 (p42): 3.1.2 C+++头文件
p4-2 (p42): 3.2整数类型
p4-2-1 (p43): 3.2.1标准整数类型
p4-2-2 (p43): 3.2.2自定义整数类型
p4-2-3 (p44): 3.2.3无效值
p4-2-4 (p44): 3.2.4 C+++封装
p4-3 (p47): 3.3错误处理
p4-3-1 (p48): 3.3.1错误码定义
p4-3-2 (p48): 3.3.2 C+++异常
p4-4 (p50): 3.4内存池
p4-4-1 (p51): 3.4.1结构定义
p4-4-2 (p51): 3.4.2操作函数
p4-4-3 (p52): 3.4.3 C+++封装
p4-4-4 (p54): 3.4.4清理机制
p4-4-5 (p57): 3.4.5 C+++内存分配器
p4-5 (p58): 3.5字符串
p4-5-1 (p59): 3.5.1结构定义
p4-5-2 (p59): 3.5.2操作函数
p4-5-3 (p61): 3.5.3 C+++封装
p4-6 (p64): 3.6时间与日期
p4-6-1 (p64): 3.6.1时间结构定义
p4-6-2 (p64): 3.6.2时间操作函数
p4-6-3 (p65): 3.6.3日期结构定义
p4-6-4 (p66): 3.6.4日期操作函数
p4-6-5 (p67): 3.6.5 C+++封装时间
p4-6-6 (p68): 3.6.6 C+++封装日期
p4-7 (p70): 3.7运行日志
p4-7-1 (p71): 3.7.1结构定义
p4-7-2 (p71): 3.7.2操作函数
p4-7-3 (p72): 3.7.3 C+++封装
p4-8 (p74): 3.8总结
p5 (p77): 第4章Nginx高级数据结构
p5-1 (p77): 4.1动态数组
p5-1-1 (p77): 4.1.1结构定义
p5-1-2 (p79): 4.1.2操作函数
p5-1-3 (p79): 4.1.3 C+++动态数组
p5-2 (p83): 4.2单向链表
p5-2-1 (p83): 4.2.1结构定义
p5-2-2 (p84): 4.2.2操作函数
p5-2-3 (p85): 4.2.3 C+++迭代器
p5-2-4 (p87): 4.2.4 C+++单向链表
p5-3 (p90): 4.3双端队列
p5-3-1 (p90): 4.3.1结构定义
p5-3-2 (p91): 4.3.2操作函数
p5-3-3 (p93): 4.3.3 C+++节点
p5-3-4 (p95): 4.3.4 C+++迭代器
p5-3-5 (p97): 4.3.5 C+++双端队列
p5-4 (p101): 4.4红黑树
p5-4-1 (p101): 4.4.1节点结构定义
p5-4-2 (p102): 4.4.2树结构定义
p5-4-3 (p103): 4.4.3操作函数
p5-4-4 (p104): 4.4.4 C+++红黑树
p5-5 (p108): 4.5缓冲区
p5-5-1 (p108): 4.5.1结构定义
p5-5-2 (p110): 4.5.2操作函数
p5-5-3 (p111): 4.5.3 C+++缓冲区
p5-6 (p113): 4.6数据块链
p5-6-1 (p114): 4.6.1结构定义
p5-6-2 (p114): 4.6.2操作函数
p5-6-3 (p115): 4.6.3 C+++节点
p5-6-4 (p117): 4.6.4 C+++迭代器
p5-6-5 (p118): 4.6.5 C+++数据块链
p5-7 (p120): 4.7键值对
p5-7-1 (p120): 4.7.1简单键值对
p5-7-2 (p121): 4.7.2散列表键值对
p5-8 (p121): 4.8总结
p6 (p123): 第5章Nginx开发综述
p6-1 (p123): 5.1最简单的模块
p6-1-1 (p124): 5.1.1模块设计
p6-1-2 (p124): 5.1.2配置解析
p6-1-3 (p126): 5.1.3处理函数
p6-1-4 (p128): 5.1.4模块集成
p6-1-5 (p129): 5.1.5编译脚本和命令
p6-1-6 (p130): 5.1.6测试验证
p6-2 (p131): 5.2开发基本流程
p6-2-1 (p131): 5.2.1设计
p6-2-2 (p132): 5.2.2开发
p6-2-3 (p133): 5.2.3编译
p6-2-4 (p133): 5.2.4测试验证
p6-2-5 (p133): 5.2.5调优
p6-2-6 (p133): 5.2.6流程图
p6-3 (p134): 5.3编译脚本
p6-3-1 (p134): 5.3.1运行机制
p6-3-2 (p135): 5.3.2使用的变量
p6-3-3 (p135): 5.3.3模块脚本
p6-3-4 (p136): 5.3.4两种脚本格式
p6-3-5 (p136): 5.3.5旧式编译脚本
p6-4 (p137): 5.4总结
p7 (p139): 第6章Nginx模块体系
p7-1 (p139): 6.1模块架构
p7-1-1 (p139): 6.1.1结构定义
p7-1-2 (p141): 6.1.2模块的签名
p7-1-3 (p142): 6.1.3模块的种类
p7-1-4 (p143): 6.1.4模块的函数指针表
p7-1-5 (p144): 6.1.5模块的类图
p7-1-6 (p145): 6.1.6模块的组织形式
p7-1-7 (p147): 6.1.7模块的初始化
p7-1-8 (p150): 6.1.8模块的动态加载
p7-2 (p152): 6.2配置解析
p7-2-1 (p152): 6.2.1结构定义
p7-2-2 (p156): 6.2.2配置解析的基本流程
p7-2-3 (p157): 6.2.3配置数据的存储模型
p7-2-4 (p163): 6.2.4访问配置数据
p7-2-5 (p163): 6.2.5确定配置数据的位置
p7-2-6 (p165): 6.2.6配置解析函数
p7-2-7 (p166): 6.2.7配置数据的合并
p7-2-8 (p167): 6.2.8配置指令的类型
p7-3 (p168): 6.3源码分析
p7-3-1 (p168): 6.3.1 ngx_core_module
p7-3-2 (p171): 6.3.2 ngx_errlog_ module
p7-4 (p172): 6.4 C++封装
p7-4-1 (p172): 6.4.1 NgxModuleConfiig
p7-4-2 (p176): 6.4.2 NgxModule
p7-4-3 (p178): 6.4.3 NgxTake
p7-4-4 (p180): 6.4.4 NGX MODULE NULL
p7-5 (p180): 6.5 C++开发模块
p7-5-1 (p180): 6.5.1模块的基本组成
p7-5-2 (p181): 6.5.2配置信息类
p7-5-3 (p183): 6.5.3业务逻辑类
p7-5-4 (p184): 6.5.4模块集成类
p7-5-5 (p186): 6.5.5实现源文件
p7-5-6 (p187): 6.5.6增加更多功能
p7-6 (p187): 6.6总结
p8 (p191): 第7章NginxHTTP框架综述
p8-1 (p191): 7.1框架简介
p8-1-1 (p191): 7.1.1模块分类
p8-1-2 (p192): 7.1.2处理流程
p8-1-3 (p194): 7.1.3请求结构体
p8-1-4 (p195): 7.1.4请求的处理阶段
p8-1-5 (p197): 7.1.5请求的环境数据
p8-2 (p198): 7.2处理引擎
p8-2-1 (p198): 7.2.1函数原型
p8-2-2 (p198): 7.2.2处理函数的存储方式
p8-2-3 (p199): 7.2.3内容处理函数
p8-2-4 (p200): 7.2.4引擎的数据结构
p8-2-5 (p201): 7.2.5引擎的初始化
p8-2-6 (p202): 7.2.6引擎的运行机制
p8-2-7 (p205): 7.2.7日志阶段的处理
p8-3 (p205): 7.3过滤引擎
p8-3-1 (p206): 7.3.1函数原型
p8-3-2 (p206): 7.3.2过滤函数链表
p8-3-3 (p207): 7.3.3过滤函数的顺序
p8-3-4 (p209): 7.3.4过滤链表的运行机制
p8-3-5 (p210): 7.3.5请求体过滤
p8-4 (p211): 7.4源码分析
p8-4-1 (p211): 7.4.1 ngx_ http_static_ module
p8-4-2 (p212): 7.4.2 ngx_ http_not_ modifiied fiilter_module
p8-5 (p213): 7.5 C++封装
p8-5-1 (p213): 7.5.1 NgxModuleCtx
p8-5-2 (p215): 7.5.2 NgxHttpCoreModule
p8-5-3 (p217): 7.5.3 NgxFilter
p8-6 (p219): 7.6总结
p9 (p221): 第8章NginxHTTP请求处理
p9-1 (p221): 8.1状态码
p9-2 (p222): 8.2请求结构体
p9-3 (p223): 8.3请求行
p9-3-1 (p223): 8.3.1请求方法
p9-3-2 (p224): 8.3.2协议版本号
p9-3-3 (p224): 8.3.3资源标识符
p9-4 (p225): 8.4请求头
p9-5 (p226): 8.5请求体
p9-5-1 (p226): 8.5.1结构定义
p9-5-2 (p227): 8.5.2操作函数
p9-6 (p227): 8.6响应头
p9-6-1 (p228): 8.6.1结构定义
p9-6-2 (p228): 8.6.2操作函数
p9-7 (p229): 8.7响应体
p9-8 (p229): 8.8源码分析
p9-8-1 (p230): 8.8.1 ngx_ http_static_ module
p9-8-2 (p231): 8.8.2 ngx http_ not_ modifiied fiilter_module
p9-9 (p232): 8.9 C++封装
p9-9-1 (p232): 8.9.1 NgxHeaders
p9-9-2 (p235): 8.9.2 NgxRequestBody
p9-9-3 (p236): 8.9.3 NgxRequest
p9-9-4 (p238): 8.9.4 NgxResponse
p9-10 (p241): 8.10开发handler模块
p9-10-1 (p241): 8.10.1模块设计
p9-10-2 (p241): 8.10.2配置信息类
p9-10-3 (p242): 8.10.3业务逻辑类
p9-10-4 (p243): 8.10.4模块集成类
p9-10-5 (p245): 8.10.5实现源文件
p9-10-6 (p245): 8.10.6编译脚本
p9-10-7 (p246): 8.10.7测试验证
p9-11 (p246): 8.11开发fiilter模块
p9-11-1 (p246): 8.11.1模块设计
p9-11-2 (p246): 8.11.2配置信息类
p9-11-3 (p247): 8.11.3环境数据类
p9-11-4 (p248): 8.11.4业务逻辑类
p9-11-5 (p251): 8.11.5模块集成类
p9-11-6 (p252): 8.11.6实现源文件
p9-11-7 (p253): 8.11.7编译脚本
p9-11-8 (p253): 8.11.8测试验证
p9-12 (p253): 8.12总结
p10 (p255): 第9章NginxHTTP请求转发
p10-1 (p255): 9.1框架简介
p10-1-1 (p256): 9.1.1工作原理
p10-1-2 (p257): 9.1.2请求结构体
p10-1-3 (p258): 9.1.3上游结构体
p10-1-4 (p260): 9.1.4上游配置参数
p10-2 (p261): 9.2请求转发机制
p10-2-1 (p261): 9.2.1回调函数
p10-2-2 (p263): 9.2.2初始化
p10-2-3 (p264): 9.2.3设置连接参数
p10-2-4 (p265): 9.2.4启动连接
p10-2-5 (p265): 9.2.5处理数据
p10-3 (p266): 9.3负载均衡机制
p10-3-1 (p267): 9.3.1结构定义
p10-3-2 (p271): 9.3.2初始化模块入口
p10-3-3 (p272): 9.3.3初始化地址列表
p10-3-4 (p274): 9.3.4初始化算法
p10-3-5 (p274): 9.3.5执行算法
p10-4 (p275): 9.4源码分析
p10-4-1 (p275): 9.4.1 ngx_http_ memcached_ module
p10-4-2 (p278): 9.4.2 ngx httpv upstream_ ip_ hash_module
p10-5 (p281): 9.5 C++封装
p10-5-1 (p281): 9.5.1 NgxUpstream
p10-5-2 (p283): 9.5.2 NgxUpstreamHelper
p10-5-3 (p285): 9.5.3 NgxHttpUpstreamModule
p10-5-4 (p287): 9.5.4 NgxLoadBalance
p10-6 (p288): 9.6开发upstream模块
p10-6-1 (p288): 9.6.1模块设计
p10-6-2 (p288): 9.6.2配置信息类
p10-6-3 (p289): 9.6.3业务逻辑类
p10-6-4 (p292): 9.6.4模块集成类
p10-6-5 (p293): 9.6.5实现源文件
p10-6-6 (p293): 9.6.6编译脚本
p10-6-7 (p294): 9.6.7测试验证
p10-7 (p294): 9.7开发load-balance模块
p10-7-1 (p294): 9.7.1模块设计
p10-7-2 (p294): 9.7.2配置信息类
p10-7-3 (p295): 9.7.3业务逻辑类
p10-7-4 (p297): 9.7.4模块集成类
p10-7-5 (p298): 9.7.5实现源文件
p10-7-6 (p299): 9.7.6编译脚本
p10-7-7 (p299): 9.7.7测试验证
p10-8 (p299): 9.8总结
p11 (p301): 第10章NginxHTTP子请求
p11-1 (p301): 10.1子请求简介
p11-1-1 (p302): 10.1.1工作原理
p11-1-2 (p303): 10.1.2请求结构体
p11-1-3 (p304): 10.1.3回调函数
p11-1-4 (p306): 10.1.4待处理请求链表
p11-1-5 (p306): 10.1.5子请求存储结构
p11-2 (p307): 10.2子请求运行机制
p11-2-1 (p307): 10.2.1创建子请求
p11-2-2 (p311): 10.2.2处理引擎
p11-2-3 (p312): 10.2.3数据整理
p11-3 (p314): 10.3 C++封装
p11-3-1 (p314): 10.3.1 NgxSubRequestHandler
p11-3-2 (p316): 10.3.2 NgxSubRequest
p11-4 (p317): 10.4数据回传模块
p11-4-1 (p317): 10.4.1模块设计
p11-4-2 (p317): 10.4.2环境数据类
p11-4-3 (p319): 10.4.3业务逻辑类
p11-4-4 (p321): 10.4.4模块集成类
p11-4-5 (p322): 10.4.5编译脚本
p11-5 (p323): 10.5在模块里使用子请求
p11-5-1 (p323): 10.5.1模块设计
p11-5-2 (p323): 10.5.2配置信息类
p11-5-3 (p324): 10.5.3业务逻辑类
p11-5-4 (p327): 10.5.4测试验证
p11-6 (p328): 10.6总结
p12 (p329): 第11章Nginx变量
p12-1 (p329): 11.1结构定义
p12-1-1 (p329): 11.1.1变量值
p12-1-2 (p330): 11.1.2变量访问对象
p12-1-3 (p331): 11.1.3变量的存储
p12-1-4 (p331): 11.1.4请求结构体
p12-2 (p332): 11.2运行机制
p12-2-1 (p333): 11.2.1注册变量
p12-2-2 (p333): 11.2.2获取变量
p12-2-3 (p334): 11.2.3修改变量
p12-3 (p334): 11.3复杂变量
p12-3-1 (p334): 11.3.1结构定义
p12-3-2 (p335): 11.3.2运行机制
p12-4 (p335): 11.4 C++封装
p12-4-1 (p336): 11.4.1 NgxVariableValue
p12-4-2 (p337): 11.4.2 NgxVariable
p12-4-3 (p339): 11.4.3 NgxVarManager
p12-4-4 (p340): 11.4.4 NgxVariables
p12-4-5 (p340): 11.4.5 NgxComplexValue
p12-5 (p341): 11.5在模块里使用变量
p12-5-1 (p341): 11.5.1添加变量
p12-5-2 (p343): 11.5.2读写变量
p12-6 (p343): 11.6在模块里使用复杂变量
p12-6-1 (p344): 11.6.1配置信息类
p12-6-2 (p344): 11.6.2业务逻辑类
p12-6-3 (p344): 11.6.3模块集成类
p12-6-4 (p344): 11.6.4测试验证
p12-7 (p345): 11.7总结
p13 (p347): 第12章Nginx辅助设施
p13-1 (p347): 12.1摘要算法
p13-1-1 (p347): 12.1.1 MD5
p13-1-2 (p348): 12.1.2 SHA-1
p13-1-3 (p349): 12.1.3 MurmurHash
p13-1-4 (p349): 12.1.4 C+++封装
p13-2 (p352): 12.2编码和解码
p13-2-1 (p352): 12.2.1 CRC校验
p13-2-2 (p353): 12.2.2 Base64编码解码
p13-2-3 (p354): 12.2.3 URI编码解码
p13-2-4 (p355): 12.2.4 HTML和JSON编码
p13-3 (p356): 12.3正则表达式
p13-4 (p356): 12.4共享内存
p13-4-1 (p357): 12.4.1结构定义
p13-4-2 (p357): 12.4.2操作函数
p13-4-3 (p358): 12.4.3 C+++共享内存
p13-5 (p359): 12.5总结
p14 (p361): 第13章Nginx进程机制
p14-1 (p361): 13.1基本系统调用
p14-1-1 (p361): 13.1.1 errno
p14-1-2 (p362): 13.1.2 getrlimit
p14-2 (p362): 13.2进程系统调用
p14-2-1 (p362): 13.2.1 getpid
p14-2-2 (p363): 13.2.2 fork
p14-2-3 (p363): 13.2.3 waitpid
p14-3 (p364): 13.3信号系统调用
p14-3-1 (p364): 13.3.1 kill
p14-3-2 (p365): 13.3.2 sigaction
p14-3-3 (p365): 13.3.3 sigsuspend
p14-4 (p365): 13.4结构定义
p14-4-1 (p365): 13.4.1 ngx_ cycle t
p14-4-2 (p366): 13.4.2 ngx_core_ conf t
p14-4-3 (p367): 13.4.3 ngx_process t
p14-5 (p368): 13.5全局变量
p14-5-1 (p368): 13.5.1命令行相关
p14-5-2 (p369): 13.5.2操作系统相关
p14-5-3 (p369): 13.5.3进程功能相关
p14-5-4 (p370): 13.5.4信号功能相关
p14-6 (p370): 13.6启动过程
p14-6-1 (p370): 13.6.1基本流程
p14-6-2 (p371): 13.6.2解析命令行
p14-6-3 (p372): 13.6.3版本和帮助信息
p14-6-4 (p372): 13.6.4初始化cycle
p14-6-5 (p374): 13.6.5测试配置
p14-6-6 (p374): 13.6.6发送信号
p14-6-7 (p374): 13.6.7守护进程化
p14-6-8 (p375): 13.6.8启动工作进程
p14-6-9 (p376): 13.6.9流程图
p14-7 (p377): 13.7信号处理
p14-7-1 (p377): 13.7.1信号处理函数
p14-7-2 (p378): 13.7.2发送信号
p14-7-3 (p378): 13.7.3处理信号
p14-8 (p379): 13.8单进程模式
p14-8-1 (p379): 13.8.1 single进程
p14-8-2 (p381): 13.8.2 single进程流程图
p14-9 (p382): 13.9多进程模式
p14-9-1 (p382): 13.9.1产生子进程
p14-9-2 (p383): 13.9.2 master进程
p14-9-3 (p387): 13.9.3 master进程流程图
p14-9-4 (p388): 13.9.4 worker进程
p14-9-5 (p389): 13.9.5 worker进程流程图
p14-10 (p390): 13.10总结
p15 (p393): 第14章Nginx事件机制
p15-1 (p393): 14.1基本系统调用
p15-1-1 (p394): 14.1.1 errno
p15-1-2 (p394): 14.1.2 ioctl
p15-1-3 (p394): 14.1.3 setitimer
p15-1-4 (p395): 14.1.4 gettimeofday
p15-2 (p395): 14.2 socket系统调用
p15-2-1 (p396): 14.2.1 socket
p15-2-2 (p396): 14.2.2 bind
p15-2-3 (p396): 14.2.3 listen
p15-2-4 (p396): 14.2.4 accept
p15-2-5 (p397): 14.2.5 connect
p15-2-6 (p397): 14.2.6 recv
p15-2-7 (p397): 14.2.7 send
p15-2-8 (p398): 14.2.8 setsockopt
p15-2-9 (p398): 14.2.9 close
p15-2-10 (p398): 14.2.10函数关系图
p15-3 (p399): 14.3 epoll系统调用
p15-3-1 (p400): 14.3.1 epoll_ create
p15-3-2 (p400): 14.3.2 epoll_ctl
p15-3-3 (p401): 14.3.3 epoll_ wait
p15-3-4 (p401): 14.3.4 LT和ET
p15-3-5 (p402): 14.3.5函数关系图
p15-4 (p403): 14.4结构定义
p15-4-1 (p403): 14.4.1 ngx_ event t
p15-4-2 (p404): 14.4.2 ngx connection_ t
p15-4-3 (p405): 14.4.3 ngx_listening_ t
p15-4-4 (p407): 14.4.4 ngx_ cycle t
p15-4-5 (p408): 14.4.5 ngx_ os_ io_ t
p15-4-6 (p411): 14.4.6 ngx_event_ actions t
p15-4-7 (p413): 14.4.7 ngx_posted events
p15-4-8 (p415): 14.4.8结构关系图
p15-5 (p415): 14.5定时器
p15-5-1 (p415): 14.5.1红黑树
p15-5-2 (p416): 14.5.2操作函数
p15-5-3 (p416): 14.5.3超时处理
p15-6 (p419): 14.6模块体系
p15-6-1 (p419): 14.6.1函数指针表
p15-6-2 (p420): 14.6.2模块的组织形式
p15-6-3 (p422): 14.6.3核心配置
p15-6-4 (p423): 14.6.4 epoll模块
p15-7 (p425): 14.7全局变量
p15-7-1 (p425): 14.7.1更新时间相关
p15-7-2 (p426): 14.7.2事件机制相关
p15-7-3 (p426): 14.7.3负载均衡相关
p15-7-4 (p427): 14.7.4统计相关
p15-8 (p427): 14.8运行机制
p15-8-1 (p427): 14.8.1模块初始化
p15-8-2 (p429): 14.8.2进程初始化
p15-8-3 (p429): 14.8.3基本参数初始化
p15-8-4 (p430): 14.8.4 epoll初始化
p15-8-5 (p431): 14.8.5连接池初始化
p15-8-6 (p433): 14.8.6监听端口初始化
p15-8-7 (p434): 14.8.7初始化流程图
p15-8-8 (p435): 14.8.8添加事件
p15-8-9 (p439): 14.8.9删除事件
p15-8-10 (p440): 14.8.10处理事件
p15-8-11 (p444): 14.8.11接受连接
p15-8-12 (p447): 14.8.12负载均衡
p15-8-13 (p452): 14.8.13避免阻塞
p15-9 (p452): 14.9总结
p16 (p455): 第15章Nginx多线程机制
p16-1 (p455): 15.1 eventfd系统调用
p16-2 (p456): 15.2 pthread系统调用
p16-2-1 (p456): 15.2.1 pthread_create
p16-2-2 (p457): 15.2.2 pthread exit
p16-3 (p457): 15.3结构定义
p16-3-1 (p457): 15.3.1 ngx_thread_ task_ t
p16-3-2 (p458): 15.3.2 ngx_thread_pool_queue_t
p16-3-3 (p458): 15.3.3 ngx_thread_pool_t
p16-3-4 (p459): 15.3.4结构关系图
p16-4 (p460): 15.4事件通知
p16-4-1 (p460): 15.4.1函数接口
p16-4-2 (p460): 15.4.2初始化
p16-4-3 (p461): 15.4.3发送通知
p16-4-4 (p462): 15.4.4处理通知
p16-5 (p463): 15.5运行机制
p16-5-1 (p463): 15.5.1完成任务队列
p16-5-2 (p463): 15.5.2创建线程池
p16-5-3 (p464): 15.5.3创建任务
p16-5-4 (p465): 15.5.4投递任务
p16-5-5 (p466): 15.5.5执行任务
p16-5-6 (p468): 15.5.6任务完成回调
p16-5-7 (p468): 15.5.7销毁线程池
p16-6 (p469): 15.6在模块里使用多线程
p16-6-1 (p470): 15.6.1模块设计
p16-6-2 (p470): 15.6.2配置信息类
p16-6-3 (p470): 15.6.3业务逻辑类
p16-6-4 (p474): 15.6.4测试验证
p16-7 (p474): 15.7总结
p17 (p477): 第16章Nginx Stream机制
p17-1 (p477): 16.1模块体系
p17-1-1 (p477): 16.1.1函数指针表
p17-1-2 (p478): 16.1.2基础模块
p17-1-3 (p480): 16.1.3核心模块
p17-1-4 (p481): 16.1.4结构关系图
p17-1-5 (p482): 16.1.5存储模型
p17-2 (p483): 16.2监听端口
p17-2-1 (p483): 16.2.1结构定义
p17-2-2 (p485): 16.2.2解析配置
p17-2-3 (p489): 16.2.3启动监听
p17-3 (p491): 16.3处理引擎
p17-3-1 (p491): 16.3.1阶段定义
p17-3-2 (p491): 16.3.2函数原型
p17-3-3 (p492): 16.3.3处理函数的存储方式
p17-3-4 (p492): 16.3.4引擎数据结构
p17-3-5 (p493): 16.3.5结构关系图
p17-3-6 (p493): 16.3.6引擎的初始化
p17-4 (p495): 16.4过滤引擎
p17-4-1 (p495): 16.4.1函数原型
p17-4-2 (p495): 16.4.2过滤函数链表
p17-5 (p496): 16.5运行机制
p17-5-1 (p496): 16.5.1会话结构体
p17-5-2 (p497): 16.5.2创建会话
p17-5-3 (p500): 16.5.3执行引擎
p17-5-4 (p501): 16.5.4通用阶段处理
p17-5-5 (p502): 16.5.5预读数据
p17-5-6 (p506): 16.5.6产生响应数据
p17-5-7 (p506): 16.5.7过滤数据
p17-5-8 (p506): 16.5.8 结束会话
p17-6 (p507): 16.6开发stream模块
p17-6-1 (p507): 16.6.1 C+++封装
p17-6-2 (p508): 16.6.2 discard协议
p17-6-3 (p510): 16.6.3 time协议
p17-6-4 (p512): 16.6.4 chargen协议
p17-7 (p514): 16.7总结
p18 (p517): 第17章NginxHTTP机制
p18-1 (p517): 17.1结构定义
p18-1-1 (p517): 17.1.1 ngx_ http_state_e
p18-1-2 (p518): 17.1.2 ngx_ http_ connection_t
p18-1-3 (p518): 17.1.3 ngx_http_request_ t
p18-2 (p519): 17.2初始化连接
p18-2-1 (p520): 17.2.1建立连接
p18-2-2 (p521): 17.2.2等待数据
p18-2-3 (p524): 17.2.3读取请求头
p18-3 (p528): 17.3执行引擎
p18-3-1 (p528): 17.3.1初始化引擎
p18-3-2 (p530): 17.3.2通用阶段
p18-3-3 (p531): 17.3.3改写阶段
p18-3-4 (p532): 17.3.4访问控制阶段
p18-3-5 (p533): 17.3.5内容产生阶段
p18-4 (p534): 17.4处理请求体
p18-4-1 (p535): 17.4.1丢弃缓冲区数据
p18-4-2 (p536): 17.4.2读取并丢弃数据
p18-4-3 (p537): 17.4.3读事件处理函数
p18-4-4 (p538): 17.4.4启动丢弃处理
p18-5 (p540): 17.5发送数据
p18-5-1 (p540): 17.5.1发送初始化
p18-5-2 (p541): 17.5.2事件处理函数
p18-6 (p543): 17.6结束请求
p18-6-1 (p543): 17.6.1释放请求资源
p18-6-2 (p544): 17.6.2检查引用计数结束请求
p18-6-3 (p545): 17.6.3检查状态结束请求
p18-6-4 (p546): 17.6.4综合处理结束请求
p18-7 (p548): 17.7总结
p19 (p551): 第18章Nginx与设计模式
p19-1 (p551): 18.1设计模式简介
p19-2 (p551): 18.2框架级别的模式
p19-3 (p553): 18.3业务级别的模式
p19-4 (p554): 18.4代码级别的模式
p19-5 (p556): 18.5总结
p20 (p557): 第19章OpenResty开发
p20-1 (p557): 19.1简介
p20-1-1 (p558): 19.1.1历史
p20-1-2 (p559): 19.1.2版本
p20-1-3 (p559): 19.1.3组成
p20-1-4 (p561): 19.1.4性能
p20-1-5 (p562): 19.1.5安装
p20-1-6 (p563): 19.1.6目录结构
p20-1-7 (p564): 19.1.7命令行工具
p20-1-8 (p565): 19.1.8参考手册
p20-2 (p566): 19.2 Lua语言
p20-2-1 (p566): 19.2.1注释
p20-2-2 (p567): 19.2.2数据类型
p20-2-3 (p568): 19.2.3变量
p20-2-4 (p569): 19.2.4运算
p20-2-5 (p570): 19.2.5语句
p20-2-6 (p572): 19.2.6函数
p20-2-7 (p574): 19.2.7表
p20-2-8 (p575): 19.2.8标准库
p20-2-9 (p576): 19.2.9模块
p20-3 (p577): 19.3 LuaJIT
p20-3-1 (p578): 19.3.1 continue
p20-3-2 (p578): 19.3.2 bit
p20-3-3 (p579): 19.3.3 ffii
p20-4 (p581): 19.4 Lua模块
p20-4-1 (p581): 19.4.1指令简介
p20-4-2 (p581): 19.4.2配置指令
p20-4-3 (p582): 19.4.3功能指令
p20-4-4 (p584): 19.4.4指令关系图
p20-4-5 (p584): 19.4.5应用开发流程
p20-5 (p585): 19.5功能接口
p20-5-1 (p585): 19.5.1运行日志
p20-5-2 (p586): 19.5.2时间与日期
p20-5-3 (p587): 19.5.3变量
p20-5-4 (p587): 19.5.4正则表达式
p20-5-5 (p588): 19.5.5请求处理
p20-5-6 (p590): 19.5.6请求转发
p20-5-7 (p592): 19.5.7子请求
p20-5-8 (p592): 19.5.8 定时器
p20-5-9 (p593): 19.5.9共享内存
p20-6 (p594): 19.6应用实例
p20-6-1 (p594): 19.6.1处理请求
p20-6-2 (p595): 19.6.2过滤请求
p20-6-3 (p596): 19.6.3转发请求
p20-6-4 (p597): 19.6.4子请求
p20-7 (p598): 19.7 Stream Lua模块
p20-7-1 (p598): 19.7.1功能接口
p20-7-2 (p599): 19.7.2 discard
p20-7-3 (p599): 19.7.3 time
p20-7-4 (p600): 19.7.4 chargen
p20-7-5 (p600): 19.7.5 echo
p20-8 (p601): 19.8 lua-resty库
p20-8-1 (p601): 19.8.1 core
p20-8-2 (p602): 19.8.2 cjson
p20-8-3 (p603): 19.8.3 redis
p20-9 (p603): 19.9总结
p21 (p605): 第20章 结束语
p21-1 (p605): 20.1本书的遗憾
p21-2 (p605): 20.2下一步
p21-3 (p606): 20.3临别赠言
p22 (p607): 附录A推荐书目
p23 (p609): 附录B GDB调试简介
p24 (p611): 附录C Nginx C++模块简介
p25 (p613): 附录D Nginx的字符串格式化
p26 (p615): 附录E nginScript简介
备用描述
第0章 导读 21
第1章 Nginx入门 29
第2章 Nginx开发准备 51
第3章 Nginx基础设施 61
第4章 Nginx高级数据结构 96
第5章 Nginx开发综述 142
第6章 Nginx模块体系 157
第7章 Nginx HTTP框架综述 209
第8章 Nginx HTTP请求处理 239
第9章 Nginx HTTP请求转发 273
第10章 Nginx HTTP子请求 319
第11章 Nginx变量 347
第12章 Nginx辅助设施 364
第13章 Nginx进程机制 377
第14章 Nginx事件机制 408
第15章 Nginx多线程机制 470
第16章 Nginx Stream机制 491
第17章 Nginx HTTP机制 530
第18章 Nginx与设计模式 563
第19章 OpenResty开发 569
第20章 结束语 617
附录A 推荐书目 619
第1章 Nginx入门 29
第2章 Nginx开发准备 51
第3章 Nginx基础设施 61
第4章 Nginx高级数据结构 96
第5章 Nginx开发综述 142
第6章 Nginx模块体系 157
第7章 Nginx HTTP框架综述 209
第8章 Nginx HTTP请求处理 239
第9章 Nginx HTTP请求转发 273
第10章 Nginx HTTP子请求 319
第11章 Nginx变量 347
第12章 Nginx辅助设施 364
第13章 Nginx进程机制 377
第14章 Nginx事件机制 408
第15章 Nginx多线程机制 470
第16章 Nginx Stream机制 491
第17章 Nginx HTTP机制 530
第18章 Nginx与设计模式 563
第19章 OpenResty开发 569
第20章 结束语 617
附录A 推荐书目 619
开源日期
2021-08-13
🚀 快速下载
成为会员以支持书籍、论文等的长期保存。为了感谢您对我们的支持,您将获得高速下载权益。❤️
如果您在本月捐款,您将获得双倍的快速下载次数。
🐢 低速下载
由可信的合作方提供。 更多信息请参见常见问题解答。 (可能需要验证浏览器——无限次下载!)
- 低速服务器(合作方提供) #1 (稍快但需要排队)
- 低速服务器(合作方提供) #2 (稍快但需要排队)
- 低速服务器(合作方提供) #3 (稍快但需要排队)
- 低速服务器(合作方提供) #4 (稍快但需要排队)
- 低速服务器(合作方提供) #5 (无需排队,但可能非常慢)
- 低速服务器(合作方提供) #6 (无需排队,但可能非常慢)
- 低速服务器(合作方提供) #7 (无需排队,但可能非常慢)
- 低速服务器(合作方提供) #8 (无需排队,但可能非常慢)
- 低速服务器(合作方提供) #9 (无需排队,但可能非常慢)
- 下载后: 在我们的查看器中打开
所有选项下载的文件都相同,应该可以安全使用。即使这样,从互联网下载文件时始终要小心。例如,确保您的设备更新及时。
外部下载
-
对于大文件,我们建议使用下载管理器以防止中断。
推荐的下载管理器:JDownloader -
您将需要一个电子书或 PDF 阅读器来打开文件,具体取决于文件格式。
推荐的电子书阅读器:Anna的档案在线查看器、ReadEra和Calibre -
使用在线工具进行格式转换。
推荐的转换工具:CloudConvert和PrintFriendly -
您可以将 PDF 和 EPUB 文件发送到您的 Kindle 或 Kobo 电子阅读器。
推荐的工具:亚马逊的“发送到 Kindle”和djazz 的“发送到 Kobo/Kindle” -
支持作者和图书馆
✍️ 如果您喜欢这个并且能够负担得起,请考虑购买原版,或直接支持作者。
📚 如果您当地的图书馆有这本书,请考虑在那里免费借阅。
下面的文字仅以英文继续。
总下载量:
“文件的MD5”是根据文件内容计算出的哈希值,并且基于该内容具有相当的唯一性。我们这里索引的所有影子图书馆都主要使用MD5来标识文件。
一个文件可能会出现在多个影子图书馆中。有关我们编译的各种数据集的信息,请参见数据集页面。
有关此文件的详细信息,请查看其JSON 文件。 Live/debug JSON version. Live/debug page.