OpenResty完全开发指南:构建百万级别并发的Web应用

副标题:无

作   者:罗剑锋

分类号:

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

已确认勘误

次印刷

页码 勘误内容 提交人 修订印次

OpenResty完全开发指南:构建百万级别并发的Web应用
    • 名称
    • 类型
    • 大小

    光盘服务联系方式: 020-38250260    客服QQ:4006604884

    意见反馈

    14:15

    关闭

    云图客服:

    尊敬的用户,您好!您有任何提议或者建议都可以在此提出来,我们会谦虚地接受任何意见。

    或者您是想咨询:

    用户发送的提问,这种方式就需要有位在线客服来回答用户的问题,这种 就属于对话式的,问题是这种提问是否需要用户登录才能提问

    Video Player
    ×
    Audio Player
    ×
    pdf Player
    ×
    Current View

    看过该图书的还喜欢

    some pictures

    解忧杂货店

    东野圭吾 (作者), 李盈春 (译者)

    loading icon