内容简介
第0章 导读
0.1 关于本书
0.2 读者对象
0.3 读者要求
0.4 运行环境
0.5 本书的结构
0.6 如何阅读本书
0.7 本书的源码
第1章 总论
1.1 简介
1.2 历史
1.3 组成
1.4 版本
1.5 安装
1.5.1 直接安装
1.5.2 源码安装
1.5.3 定制安装
1.6 目录结构
1.7 启停服务
1.8 组件管理工具
1.9 命令行工具
1.10 参考手册
1.11 性能对比
1.12 应用架构
1.13 总结
第2章 Nginx平台
2.1 简介
2.2 进程模型
2.3 配置文件
2.4 变量
2.5 HTTP服务
2.5.1 server配置
2.5.2 location配置
2.6 TCP/UDP服务
2.7 反向代理
2.7.1 上游集群
2.7.2 代理转发
2.8 运行日志
2.8.1 访问日志
2.8.2 错误日志
2.9 总结
第3章 Lua语言
3.1 简介
3.2 注释
3.3 数据类型
3.4 字符串
3.5 变量
3.6 运算
3.6.1 算术运算
3.6.2 关系运算
3.6.3 逻辑运算
3.6.4 字符串运算
3.6.5 注意事项
3.7 控制语句
3.7.1 语句块
3.7.2 赋值语句
3.7.3 分支语句
3.7.4 循环语句
3.8 函数
3.8.1 定义函数
3.8.2 参数和返回值
3.9 表
3.9.1 定义表
3.9.2 操作表
3.9.3 范围循环
3.9.4 作为函数的参数
3.10 模块
3.11 面向对象
3.11.1 基本特性
3.11.2 原型模式
3.11.3 self参数
3.12 标准库
3.12.1 base库
3.12.2 package库
3.12.3 string库
3.12.4 table库
3.12.5 math库
3.12.6 io库
3.12.7 os库
3.12.8 debug库
3.12.9 使用技巧
3.13 高级特性
3.13.1 闭包
3.13.2 保护调用
3.13.3 可变参数
3.14 总结
第4章 LuaJIT环境
4.1 简介
4.2 goto语句
4.3 jit库
4.4 table库
4.5 bit库
4.6 ffi库
4.7 编译为字节 码
4.8 编译为机器码
4.9 总结
第5章 开发概述
5.1 应用示例
5.1.1 编码实现
5.1.2 测试验证
5.2 运行命令
5.3 目录结构
5.4 配置指令
5.5 运行机制
5.5.1 处理阶段
5.5.2 执行程序
5.5.3 定时任务
5.5.4 流程图
5.6 功能接口
5.7 核心库
5.8 应用开发流程
5.9 总结
第6章 基础功能
6.1 系统信息
6.2 运行日志
6.3 时间日期
6.3.1 当前时间
6.3.2 时间戳
6.3.3 格式化时间戳
6.3.4 更新时间
6.3.5 睡眠
6.4 数据编码
6.4.1 Base64
6.4.2 JSON
6.4.3 MessagePack
6.5 正则表达式
6.5.1 配置指令
6.5.2 匹配选项
6.5.3 匹配
6.5.4 查找
6.5.5 替换
6.5.6 切分
6.6 高速缓存
6.6.1 创建缓存
6.6.2 使用缓存
6.7 总结
第7章 HTTP服务
7.1 简介
7.2 配置指令
7.3 常量
7.3.1 状态码
7.3.2 请求方法
7.4 变量
7.4.1 读变量
7.4.2 写变量
7.5 基本信息
7.5.1 请求来源
7.5.2 起始时间
7.5.3 请求头
7.5.4 暂存数据
7.6 请求行
7.6.1 版本
7.6.2 方法
7.6.3 地址
7.6.4 参数
7.7 请求头
7.7.1 读取数据
7.7.2 改写数据
7.8 请求体
7.8.1 丢弃数据
7.8.2 读取数据
7.8.3 改写数据
7.9 响应头
7.9.1 改写数据
7.9.2 发送数据
7.9.3 过滤数据
7.10 响应体
7.10.1 发送数据
7.10.2 过滤数据
7.11 手动收发数据
7.12 流程控制
7.12.1 重定向请求
7.12.2 终止请求
7.13 检测断连
7.14 综合示例
7.15 总结
第8章 访问后端
8.1 简介
8.2 子请求
8.2.1 接口说明
8.2.2 应用示例
8.2.3 使用建议
8.3 协程套接字
8.3.1 配置指令
8.3.2 创建对象
8.3.3 超时设置
8.3.4 建立连接
8.3.5 复用连接
8.3.6 关闭连接
8.3.7 发送数据
8.3.8 接收数据
8.3.9 应用示例
8.4 DNS客户端
8.4.1 创建对象
8.4.2 查询地址
8.4.3 缓存地址
8.5 HTTP客户端
8.5.1 创建对象
8.5.2 发送请求
8.6 WebSocket客户端
8.6.1 创建对象
8.6.2 建立连接
8.6.3 关闭连接
8.6.4 复用连接
8.6.5 发送数据
8.6.6 接收数据
8.7 Redis客户端
8.7.1 创建对象
8.7.2 建立连接
8.7.3 关闭连接
8.7.4 复用连接
8.7.5 执行命令
8.7.6 管道
8.7.7 脚本
8.8 MySQL客户端
8.8.1 创建对象
8.8.2 建立连接
8.8.3 服务器版本号
8.8.4 关闭连接
8.8.5 复用连接
8.8.6 简单查询
8.8.7 高级查询
8.8.8 防止SQL注入
8.9 总结
第9章 反向代理
9.1 简介
9.2 上游集群
9.2.1 静态服务器信息
9.2.2 动态服务器信息
9.2.3 服务器下线
9.2.4 当前上游集群
9.3 负载均衡
9.3.1 使用方式
9.3.2 功能接口
9.4 总结
第10章 高级功能
10.1 共享内存
10.1.1 配置指令
10.1.2 写操作
10.1.3 读操作
10.1.4 删除操作
10.1.5 计数操作
10.1.6 队列操作
10.1.7 过期操作
10.1.8 其他操作
10.2 定时器
10.2.1 配置指令
10.2.2 单次任务
10.2.3 周期任务
10.3 进程管理
10.3.1 进程类型
10.3.2 工作进程
10.3.3 监控进程
10.3.4 特权进程
10.4 轻量级线程
10.4.1 启动线程
10.4.2 等待线程
10.4.3 挂起线程
10.4.4 停止线程
10.4.5 信号量
10.5 总结
第11章 HTTPS服务
11.1 简介
11.1.1 密码学
11.1.2 网络协议
11.2 服务配置
11.3 应用开发
11.4 基本信息
11.4.1 协议版本号
11.4.2 主机名
11.4.3 地址
11.5 加载证书
11.5.1 清除证书
11.5.2 设置证书
11.5.3 设置私钥
11.5.4 测试验证
11.6 查验证书
11.6.1 发送查询
11.6.2 通知客户端
11.7 会话复用
11.7.1 Session ID
11.7.2 Session Tickets
11.8 总结
第12章 HTTP2服务
12.1 简介
12.2 服务配置
12.3 应用开发
12.4 测试验证
12.5 总结
第13章 WebSocket服务
13.1 简介
13.2 服务配置
13.3 应用开发
13.4 总结
第14章 TCP/UDP服务
14.1 简介
14.2 配置指令
14.3 运行机制
14.3.1 处理阶段
14.3.2 执行程序
14.3.3 流程图
14.4 功能接口
14.5 应用示例
14.6 总结
第15章 结束语
附录A 推荐书目
附录B 定制OpenResty