OpenResty最佳实践
序
入门篇
Socket 编程发展
OpenResty 简介
Lua 入门
Lua 简介
Lua 环境搭建
Lua 编辑器选择
基础数据类型
表达式
控制结构
if/else
while
repeat
for
break,return 和 goto
Lua函数
函数的定义
函数的参数
函数返回值
全动态函数调用
模块
String 库
Table 库
日期时间函数
数学库函数
文件操作
Lua 高阶
元表
面向对象编程
局部变量
判断数组大小
非空判断
正则表达式
虚变量
抵制使用 module() 定义模块
调用代码前先定义函数
点号与冒号操作符的区别
module 是邪恶的
FFI
什么是 JIT
Nginx
Nginx 新手起步
location 匹配规则
静态文件服务
日志
反向代理
负载均衡
陷阱和常见错误
OpenResty
环境搭建
Windows 平台
CentOS 平台
Ubuntu 平台
Mac OS X 平台
Hello World
与其他 location 配合
获取 uri 参数
获取请求 body
输出响应体
日志输出
简单API Server框架
使用 Nginx 内置绑定变量
子查询
不同阶段共享变量
防止 SQL 注入
如何发起新 HTTP 请求
LuaRestyRedisLibrary
访问有授权验证的 Redis
select+set_keepalive 组合操作引起的数据读写错误
redis 接口的二次封装(简化建连、拆连等细节)
redis 接口的二次封装(发布订阅)
pipeline 压缩请求数量
script 压缩复杂请求
动态生成的 lua-resty-redis 模块方法
LuaCjsonLibrary
json解析的异常捕获
稀疏数组
空table编码为array还是object
PostgresNginxModule
调用方式简介
不支持事务
超时
健康监测
SQL注入
LuaNginxModule
执行阶段概念
正确的记录日志
热装载代码
阻塞操作
缓存
sleep
定时任务
禁止某些终端访问
请求返回后继续执行
调试
请求中断后的处理
我的 lua 代码需要调优么
变量的共享范围
动态限速
shared.dict 非队列性质
正确使用长链接
如何引用第三方 resty 库
典型应用场景
怎样理解 cosocket
如何安全启动唯一实例的 timer
如何正确的解析域名
LuaRestyDNSLibrary
使用动态 DNS 来完成 HTTP 请求
LuaRestyLock
缓存失效风暴
OpenResty 与 SSL
HTTPS 时代
动态加载证书和 OCSP stapling
TLS session resumption
测试
代码静态分析
单元测试
代码覆盖率
API 测试
性能测试
持续集成
灰度发布
分流引擎设计
控制台开发
向运维平台发展
Web 服务
API的设计
数据合法性检测
协议无痛升级
代码规范
连接池
C10K 编程
TIME_WAIT 问题
与 Docker 使用的网络瓶颈
火焰图
什么是火焰图
什么时候使用
如何安装火焰图生成工具
如何定位问题
Powered by
GitBook
测试
测试
results matching "
"
No results matching "
"