1.1
1.2
1.2.1
1.2.2
1.3
1.3.1
1.3.2
1.3.3
1.3.4
1.3.5
1.3.5.1
1.3.5.2
1.3.5.3
1.3.5.4
1.3.5.5
1.3.6
1.3.6.1
1.3.6.2
1.3.6.3
1.3.6.4
1.3.7
1.3.8
1.3.9
1.3.10
1.3.11
1.3.12
1.4
1.4.1
1.4.2
1.4.3
目錄
序
入门篇
Socket编程发展
OpenResty简介
Lua入门
Lua简介
Lua环境搭建
基础数据类型
表达式
控制结构
if/else
while
repeat
for
break,return
Lua函数
函数的定义
函数的参数
函数返回值
全动态函数调用
模块
String库
Table库
日期时间函数
数学库函数
文件操作
Lua高阶
元表
面向对象编程
局部变量
1
1.4.4
1.4.5
1.4.6
1.4.7
1.4.8
1.4.9
1.4.10
1.4.11
1.4.12
1.4.13
1.4.14
1.5
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5
1.5.6
1.5.7
1.5.8
1.6
1.6.1
1.6.1.1
1.6.1.2
1.6.1.3
1.6.1.4
1.6.2
1.6.3
1.6.4
1.6.5
1.6.6
1.6.7
1.6.8
1.6.9
判断数组大小
非空判断
正则表达式
不用标准库
虚变量
抵制使用module()定义模块
调用代码前先定义函数
点号与冒号操作符的区别
module是邪恶的
FFI
什么是JIT
Nginx
Nginx新手起步
location匹配规则
if是邪恶的
静态文件服务
日志
反向代理
负载均衡
陷阱和常见错误
OpenResty
环境搭建
Windows平台
CentOS平台
Ubuntu平台
MacOSX平台
HelloWorld
与其他location配合
获取uri参数
获取请求body
输出响应体
日志输出
简单APIServer框架
使用Nginx内置绑定变量
2
1.6.10
1.6.11
1.6.12
1.6.13
1.7
1.7.1
1.7.2
1.7.3
1.7.4
1.7.5
1.7.6
1.7.7
1.8
1.8.1
1.8.2
1.8.3
1.9
1.9.1
1.9.2
1.9.3
1.9.4
1.9.5
1.10
1.10.1
1.10.2
1.10.3
1.10.4
1.10.5
1.10.6
1.10.7
1.10.8
1.10.9
1.10.10
子查询
不同阶段共享变量
防止SQL注入
如何发起新HTTP请求
LuaRestyRedisLibrary
访问有授权验证的Redis
select+set_keepalive组合操作引起的数据读写错误
redis接口的二次封装(简化建连、拆连等细节)
redis接口的二次封装(发布订阅)
pipeline压缩请求数量
script压缩复杂请求
动态生成的lua-resty-redis模块方法
LuaCjsonLibrary
json解析的异常捕获
稀疏数组
空table编码为array还是object
PostgresNginxModule
调用方式简介
不支持事务
超时
健康监测
SQL注入
LuaNginxModule
执行阶段概念
正确的记录日志
热装载代码
阻塞操作
缓存
sleep
定时任务
禁止某些终端访问
请求返回后继续执行
调试
3
1.10.11
1.10.12
1.10.13
1.10.14
1.10.15
1.10.16
1.10.17
1.10.18
1.10.19
1.10.20
1.10.21
1.10.22
1.10.23
1.10.24
1.11
1.11.1
1.12
1.12.1
1.13
1.13.1
1.13.2
1.13.3
1.14
1.14.1
1.15
1.15.1
1.15.2
1.15.3
1.16
1.16.1
1.16.2
1.16.3
1.16.4
1.16.5
请求中断后的处理
我的lua代码需要调优么
变量的共享范围
动态限速
shared.dict非队列性质
正确使用长链接
如何引用第三方resty库
body在location中的传递
典型应用场景
[Nginx状态查看器]
怎样理解cosocket
[如何使用高速缓存]
如何安全启动唯一实例的timer
如何正确的解析域名
LuaRestyDNSLibrary
使用动态DNS来完成HTTP请求
LuaRestyLock
缓存失效风暴
stream_lua_module
[TCP代理负载]
[基本用法]
[故障细节]
balancer_by_lua
[自定义upstream选举]
OpenResty与SSL
HTTPS时代
动态加载证书和OCSPstapling
TLSsessionresumption
测试
代码静态分析
单元测试
代码覆盖率
API测试
性能测试
4
1.16.6
1.16.7
1.17
1.17.1
1.17.2
1.17.3
1.17.4
1.17.5
1.17.6
1.17.7
1.17.8
1.18
1.18.1
1.18.2
1.18.3
1.19
1.19.1
1.19.1.1
1.19.1.2
1.19.1.3
1.19.1.4
1.19.1.5
1.19.1.6
1.19.1.7
1.19.1.7.1
1.19.1.7.2
1.19.2
1.19.2.1
1.19.2.2
1.19.2.3
1.19.2.4
1.19.2.5
1.19.2.6
持续集成
灰度发布
Web服务
API的设计
数据合法性检测
协议无痛升级
代码规范
连接池
C10K编程
TIME_WAIT问题
与Docker使用的网络瓶颈
火焰图
什么时候使用
如何安装火焰图生成工具
如何定位问题
OpenResty周边
Vanilla/香草
为什么要开发Vanilla
Vanilla致力解决的问题
组织结构
性能指标
Demo示例
新浪移动的OpenResty之路
[Vanilla项目实践]
新浪移动评论项目
新浪移动独立产品Vanilla改造
Mashape/kong
Kong名字的来历(others/kong/origin.md)
Kong能解决什么问题(others/kong/apigateway.md)
国内外有哪些类似的产品(others/kong/products.md)
关键概念(others/kong/keyconcepts.md)
集群功能(others/kong/cluster.md)
开发自定义插件(others/kong/plugin.md)
5