openresty
序
1.
Lua 入门
1.1.
Lua简介
1.2.
Lua环境搭建
1.3.
基础数据类型
1.4.
表达式
1.5.
控制结构
1.5.1.
if/else
1.5.2.
while
1.5.3.
repeat
1.5.4.
for
1.5.5.
break,return
1.6.
Lua函数
1.6.1.
函数的定义
1.6.2.
函数的参数
1.6.3.
函数的返回值
1.6.4.
全动态函数调用
1.7.
模块
1.8.
String库
1.9.
Table库
1.10.
日期时间函数
1.11.
数学库函数
1.12.
文件操作
2.
[Lua高阶]
2.1.
元表
2.2.
面向对象编程
2.3.
FFI
2.4.
下标从1开始
2.5.
局部变量
2.6.
判断数组大小
2.7.
非空判断
2.8.
正则表达式
2.9.
不用标准库
2.10.
虚变量
2.11.
函数在调用代码前定义
2.12.
抵制使用module()函数来定义Lua模块
2.13.
点号与冒号操作符的区别
3.
Nginx
3.1.
Nginx 新手起步
3.2.
location 匹配规则
3.3.
if 是邪恶的
3.4.
静态文件服务
3.5.
日志服务
3.6.
反向代理
3.7.
负载均衡
3.8.
陷阱和常见错误
4.
[OpenResty]
4.1.
环境搭建
4.1.1.
Windows平台
4.1.2.
CentOS平台
4.1.3.
Ubuntu平台
4.1.4.
Mac OS X平台
4.1.5.
[DockerHub]
4.2.
Hello World
4.3.
与其他 location 配合
4.4.
获取 uri 参数
4.5.
获取请求 body
4.6.
输出响应体
4.7.
[日志输出]
4.8.
简单API Server框架
4.9.
获取Nginx内置绑定变量
4.10.
[子查询]
4.11.
[在不同阶段共享变量]
4.12.
[防止SQL注入]
4.13.
[自定义模块]
5.
LuaRestyRedisLibrary
5.1.
select+set_keepalive组合操作引起的数据读写错误
5.2.
redis接口的二次封装(简化建连、拆连等细节)
5.3.
redis接口的二次封装(发布订阅)
5.4.
pipeline压缩请求数量
5.5.
script压缩复杂请求
6.
LuaCjsonLibrary
6.1.
json解析的异常捕获
6.2.
稀疏数组
6.3.
空table编码为array还是object
6.4.
跨平台的库选择
7.
PostgresNginxModule
7.1.
调用方式简介
7.2.
不支持事务
7.3.
超时
7.4.
健康监测
7.5.
SQL注入
8.
LuaNginxModule
8.1.
执行阶段概念
8.2.
正确的记录日志
8.3.
热装载代码
8.4.
阻塞操作
8.5.
缓存
8.6.
sleep
8.7.
定时任务
8.8.
禁止某些终端访问
8.9.
请求返回后继续执行
8.10.
调试
8.11.
调用其他C函数动态库
8.12.
请求中断后的处理
8.13.
我的lua代码需要调优么
8.14.
变量的共享范围
8.15.
动态限速
8.16.
shared.dict 非队列性质
8.17.
如何添加自己的lua api
8.18.
正确使用长链接
8.19.
如何引用第三方resty库
8.20.
body在location中的传递
8.21.
典型应用场景
9.
LuaRestyDNSLibrary
9.1.
使用动态DNS来完成HTTP请求
10.
LuaRestyLock
10.1.
缓存失效风暴
11.
测试
11.1.
单元测试
11.2.
API测试
11.3.
性能测试
11.4.
持续集成
11.5.
灰度发布
12.
Web 服务
12.1.
API的设计
12.2.
数据合法性检测
12.3.
协议无痛升级
12.4.
代码规范
12.5.
连接池
12.6.
C10K编程
12.7.
TIME_WAIT问题
12.8.
与Docker使用的网络瓶颈
13.
火焰图
13.1.
什么时候使用
13.2.
显示的是什么
13.3.
如何安装火焰图生成工具
13.4.
如何定位问题
14.
[杂谈]
14.1.
开源文化对360企业安全的影响
14.2.
[为什么开源项目大多来自国外]
14.3.
[编译Windows版本]
Powered by
GitBook
openresty
持续集成
我们做的还不够好,先占个坑。
欢迎贡献章节。