书海网短评:
适读人群:追求高性能的Web应用研发工程师微服务、API网关、Web应用防火墙的研发工程师通用的HTTP/TCP/UDP应用服务研发工程师基于OpenResty/Nginx深度定制的研发工程师工作在Linux系统上的的运维、测试工
《OpenResty完全开发指南:构建百万级别并发的Web应用》由一线技术专家基于自己的工作经验精心撰写而成,主要包括OpenResty的组成、运行平台、工作语言、内部运行机制、功能接口、各种服务的配置和开发方式。
《OpenResty完全开发指南:构建百万级别并发的Web应用》作者技术功底强,写作水平高,写作的图书不唯市场论,不唯风头论,只写自己一线工作经验,对于自己的技术书籍出版也从来都是一丝不苟,一心只为大家奉献优质、实用且实战的优秀技术图书!
OpenResty是一个基于Nginx的高性能Web平台,能够方便地搭建处理超高并发的动态Web应用、Web服务和动态网关。
与现有的其他开发语言/环境相比,OpenResty有着高性能、高灵活性、易于学习和扩展等许多优点,近年来得到了越来越多开发者的关注,也有了很多成功的应用范例,如Adobe、Dropbox、GitHub等知名公司都基于OpenResty构建了自己的后端业务应用。
OpenResty自带完善的帮助文档,开发社区也很活跃,但相关的学习资料——特别是中文资料较少。《OpenResty完全开发指南:构建百万级别并发的Web应用》基于作者多年使用OpenResty的经验,系统地阐述了OpenResty相关的各方面知识和要点,帮助读者快速掌握这个高效易用的Web开发平台,进而实现HTTP/HTTPS/TCP/UDP等多种网络应用。
《OpenResty完全开发指南:构建百万级别并发的Web应用》结构严谨、详略得当,具有较强的实用性,适合广大软件开发工程师、系统运维工程师、编程爱好者和计算机专业学生阅读参考。
罗剑锋(网名Chrono),96年就读于东北财经大学1997年开始接触C/C++1998年参加计算机软件专业技术资格和水平考试,获高级程序员资质2003年毕业于北京理工大学,获计算机专业硕士学位主要研究方向为C/C++、设计模式、高性能网络服务器开发业余爱好是阅读、旅游、欣赏音乐和电影。
第0章导读1
0.1关于《OpenResty完全开发指南:构建百万级别并发的Web应用》1
0.2读者对象1
0.3读者要求3
0.4运行环境3
0.5《OpenResty完全开发指南:构建百万级别并发的Web应用》的结构3
0.6如何阅读《OpenResty完全开发指南:构建百万级别并发的Web应用》5
0.7《OpenResty完全开发指南:构建百万级别并发的Web应用》的源码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.5HTTP服务27
2.5.1server配置28
2.5.2location配置28
2.6TCP/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.3self参数51
3.12标准库51
3.12.1base库52
3.12.2package库52
3.12.3string库53
3.12.4table库54
3.12.5math库55
3.12.6io库56
3.12.7os库57
3.12.8debug库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.2goto语句62
4.3jit库62
4.4table库63
4.5bit库63
4.6ffi库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.1Base6492
6.4.2JSON92
6.4.3MessagePack94
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.4DNS客户端137
8.4.1创建对象138
8.4.2查询地址138
8.4.3缓存地址139
8.5HTTP客户端140
8.5.1创建对象140
8.5.2发送请求140
8.6WebSocket客户端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.7Redis客户端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.8MySQL客户端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.1SessionID191
11.7.2SessionTickets193
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定制OpenResty217









