| 作者 |
| 罗剑锋 |
| 丛书名 |
| 出版社 |
| 电子工业出版社 |
| ISBN |
| 9787121348969 |
| 简要 |
| 简介 |
| 内容简介书籍计算机书籍 OpenResty是一个基于Nginx的高性能Web平台,能够方便地搭建处理超高并发的动态Web应用、Web服务和动态网关。与现有的其他开发语言/环境相比,OpenResty有着高性能、高灵活性、易于学习和扩展等许多优点,近年来得到了越来越多开发者的关注,也有了很多成功的应用范例,如Adobe、Dropbox、GitHub等知名公司都基于OpenResty构建了自己的后端业务应用。OpenResty自带完善的帮助文档,开发社区也很活跃,但相关的学习资料——特别是中文资料较少。本书基于作者多年使用OpenResty的经验,系统地阐述了OpenResty相关的各方面知识和要点,帮助读者快速掌握这个高效易用的Web开发平台,进而实现HTTP/HTTPS/TCP/UDP等多种网络应用。本书结构严谨、详略得当,具有较强的实用性,适合广大软件开发工程师、系统运维工程师、编程爱好者和计算机专业学生阅读参考。 |
| 目录 |
| 第0章 导读 1 0.1 关于本书 1 0.2 读者对象 1 0.3 读者要求 3 0.4 运行环境 3 0.5 本书的结构 3 0.6 如何阅读本书 5 0.7 本书的源码 5 第1章 总论 7 1.1 简介 7 1.2 历史 8 1.3 组成 9 1.4 版本 11 1.5 安装 12 1.5.1 直接安装 12 1.5.2 源码安装 13 1.5.3 定制安装 13 1.6 结构 14 1.7 启停服务 15 1.8 组件管理工具 15 1.9 命令行工具 16 1.10 参考手册 18 1.11 性能对比 18 1.12 应用架构 21 1.13 总结 22 第2章 Nginx平台 23 2.1 简介 23 2.2 进程模型 24 2.3 配置文件 25 2.4 变量 26 2.5 HTTP服务 27 2.5.1 server配置 28 2.5.2 location配置 28 2.6 TCP/UDP服务 29 2.7 反向代理 29 2.7.1 上游集群 30 2.7.2 代理转发 31 2.8 运行日志 31 2.8.1 访问日志 32 2.8.2 错误日志 32 2.9 总结 32 第3章 Lua语言 35 3.1 简介 35 3.2 注释 36 3.3 数据类型 36 3.4 字符串 37 3.5 变量 38 3.6 运算 39 3.6.1 算术运算 39 3.6.2 关系运算 39 3.6.3 逻辑运算 40 3.6.4 字符串运算 40 3.6.5 注意事项 41 3.7 控制语句 41 3.7.1 语句块 41 3.7.2 赋值语句 41 3.7.3 分支语句 42 3.7.4 循环语句 43 3.8 函数 44 3.8.1 定义函数 44 3.8.2 参数和返回值 45 3.9 表 46 3.9.1 定义表 46 3.9.2 操作表 46 3.9.3 范围循环 47 3.9.4 作为函数的参数 48 3.10 模块 48 3.11 面向对象 49 3.11.1 基本特性 49 3.11.2 原型模式 50 3.11.3 self参数 51 3.12 标准库 51 3.12.1 base库 52 3.12.2 package库 52 3.12.3 string库 53 3.12.4 table库 54 3.12.5 math库 55 3.12.6 io库 56 3.12.7 os库 57 3.12.8 debug库 57 3.12.9 使用技巧 57 3.13 高级特性 58 3.13.1 闭包 58 3.13.2 保护调用 58 3.13.3 可变参数 59 3.14 总结 59 第4章 LuaJIT环境 61 4.1 简介 61 4.2 goto语句 62 4.3 jit库 62 4.4 table库 63 4.5 bit库 63 4.6 ffi库 65 4.7 编译为字节码 67 4.8 编译为机器码 68 4.9 总结 68 第5章 开发概述 71 5.1 应用示例 71 5.1.1 编码实现 71 5.1.2 测试验证 73 5.2 运行命令 74 5.3 结构 75 5.4 配置指令 76 5.5 运行机制 77 5.5.1 处理阶段 77 5.5.2 执行程序 79 5.5.3 定时任务 81 5.5.4 流程图 81 5.6 功能接口 83 5.7 核心库 83 5.8 应用开发流程 84 5.9 总结 85 第6章 基础功能 87 6.1 系统信息 87 6.2 运行日志 88 6.3 时间日期 89 6.3.1 当前时间 90 6.3.2 时间戳 90 6.3.3 格式化时间戳 90 6.3.4 更新时间 91 6.3.5 睡眠 91 6.4 数据编码 92 6.4.1 Base64 92 6.4.2 JSON 92 6.4.3 MessagePack 94 6.5 正则表达式 95 6.5.1 配置指令 95 6.5.2 匹配选项 96 6.5.3 匹配 96 6.5.4 查找 98 6.5.5 替换 99 6.5.6 切分 100 6.6 高速缓存 101 6.6.1 创建缓存 101 6.6.2 使用缓存 102 6.7 总结 103 第7章 HTTP服务 105 7.1 简介 105 7.2 配置指令 106 7.3 常量 107 7.3.1 状态码 107 7.3.2 请求方法 108 7.4 变量 108 7.4.1 读变量 108 7.4.2 写变量 109 7.5 基本信息 110 7.5.1 请求来源 110 7.5.2 起始时间 110 7.5.3 请求头 110 7.5.4 暂存数据 111 7.6 请求行 111 7.6.1 版本 112 7.6.2 方法 112 7.6.3 地址 112 7.6.4 参数 113 7.7 请求头 114 7.7.1 读取数据 114 7.7.2 改写数据 115 7.8 请求体 115 7.8.1 丢弃数据 115 7.8.2 读取数据 115 7.8.3 改写数据 116 7.9 响应头 117 7.9.1 改写数据 117 7.9.2 发送数据 118 7.9.3 过滤数据 118 7.10 响应体 118 7.10.1 发送数据 118 7.10.2 过滤数据 119 7.11 手动收发数据 120 7.12 流程控制 121 7.12.1 重定向请求 121 7.12.2 终止请求 121 7.13 检测断连 122 7.14 综合示例 123 7.15 总结 126 第8章 访问后端 127 8.1 简介 127 8.2 子请求 128 8.2.1 接口说明 128 8.2.2 应用示例 129 8.2.3 使用建议 130 8.3 协程套接字 131 8.3.1 配置指令 131 8.3.2 创建对象 132 8.3.3 超时设置 133 8.3.4 建立连接 133 8.3.5 复用连接 134 8.3.6 关闭连接 134 8.3.7 发送数据 135 8.3.8 接收数据 135 8.3.9 应用示例 136 8.4 DNS客户端 137 8.4.1 创建对象 138 8.4.2 查询地址 138 8.4.3 缓存地址 139 8.5 HTTP客户端 140 8.5.1 创建对象 140 8.5.2 发送请求 140 8.6 WebSocket客户端 142 8.6.1 创建对象 142 8.6.2 建立连接 143 8.6.3 关闭连接 143 8.6.4 复用连接 143 8.6.5 发送数据 144 8.6.6 接收数据 144 8.7 Redis客户端 145 8.7.1 创建对象 145 8.7.2 建立连接 145 8.7.3 关闭连接 146 8.7.4 复用连接 146 8.7.5 执行命令 146 8.7.6 管道 147 8.7.7 脚本 148 8.8 MySQL客户端 148 8.8.1 创建对象 149 8.8.2 建立连接 149 8.8.3 服务器版本号 150 8.8.4 关闭连接 150 8.8.5 复用连接 150 8.8.6 简单查询 150 8.8.7 高级查询 152 8.8.8 防止SQL注入 152 8.9 总结 153 第9章 反向代理 155 9.1 简介 155 9.2 上游集群 156 9.2.1 静态服务器信息 157 9.2.2 动态服务器信息 158 9.2.3 服务器下线 159 9.2.4 当前上游集群 159 9.3 负载均衡 160 9.3.1 使用方式 160 9.3.2 功能接口 161 9.4 总结 162 第10章 高级功能 163 10.1 共享内存 163 10.1.1 配置指令 163 10.1.2 写操作 164 10.1.3 读操作 165 10.1.4 删除操作 166 10.1.5 计数操作 166 10.1.6 队列操作 166 10.1.7 过期操作 167 10.1.8 其他操作 168 10.2 定时器 168 10.2.1 配置指令 168 10.2.2 单次任务 169 10.2.3 周期任务 170 10.3 进程管理 171 10.3.1 进程类型 171 10.3.2 工作进程 172 10.3.3 监控进程 173 10.3.4 特权进程 173 10.4 轻量级线程 174 10.4.1 启动线程 175 10.4.2 等待线程 175 10.4.3 挂起线程 176 10.4.4 停止线程 177 10.4.5 信号量 178 10.5 总结 179 第11章 HTTPS服务 181 11.1 简介 181 11.1.1 密码学 181 11.1.2 网络协议 182 11.2 服务配置 184 11.3 应用开发 185 11.4 基本信息 185 11.4.1 协议版本号 185 11.4.2 主机名 186 11.4.3 地址 186 11.5 加载证书 187 11.5.1 清除证书 187 11.5.2 设置证书 187 11.5.3 设置私钥 188 11.5.4 测试验证 189 11.6 查验证书 189 11.6.1 发送查询 189 11.6.2 通知客户端 191 11.7 会话复用 191 11.7.1 Session ID 191 11.7.2 Session Tickets 193 11.8 总结 193 第12章 HTTP2服务 195 12.1 简介 195 12.2 服务配置 196 12.3 应用开发 197 12.4 测试验证 197 12.5 总结 198 第13章 Websocket服务 199 13.1 简介 199 13.2 服务配置 200 13.3 应用开发 200 13.4 总结 202 第14章 TCP/UDP服务 203 14.1 简介 203 14.2 配置指令 204 14.3 运行机制 205 14.3.1 处理阶段 205 14.3.2 执行程序 206 14.3.3 流程图 206 14.4 功能接口 208 14.5 应用示例 208 14.6 总结 210 第15章 结束语 211 附录A 推荐书目 215 附录B 定制OpenResty 217 |