OpenResty
OpenResty = Nginx 核心 + LuaJIT,由章亦春(agentzh)开发。它通过在 Nginx 各阶段嵌入 Lua 脚本,实现了高度可编程的 Web 应用网关。
核心能力
OpenResty 在 CDN 自建方案中的主要用途:
| 功能 | 说明 |
|---|---|
| 静态缓存 | 在 Nginx 基础上通过 Lua 实现精细化的缓存控制 |
| 灰度发布 | 通过 Lua 脚本按比例分流(如 10% → 新版本) |
| 请求处理 | 在 Nginx 各阶段(rewrite/access/content)嵌入 Lua 逻辑 |
| 动态配置 | 无需重启即可修改路由、限流等规则 |
对比
| 方案 | Nginx | OpenResty | Tengine |
|---|---|---|---|
| 核心 | Nginx C 模块 | Nginx + LuaJIT | 淘宝增强版 Nginx |
| 扩展方式 | C 模块(编译) | Lua 脚本(动态) | C 模块 + 内置增强 |
| 灵活性 | 低 | 高 | 中 |
| 适用场景 | 常规反向代理 | CDN 自建、API 网关 | 淘宝系业务 |