OpenResty 1.31.1.1 介绍与选型指南

OpenResty 1.31.1.1 介绍与选型指南:NGINX+LuaJIT 可编程 Web 平台的架构、cosocket 与阶段化处理模型、官方源安装与快速上手、适用场景与限制,以及与原生 Nginx、Apache APISIX、Kong 的量化选型对比,全部数据来自官方公开资料联网查证(查询日期 2026-10-19)。

OpenRestyOpenRestyWeb 服务器2026/10/19

OpenResty 1.31.1.1 介绍与选型指南

一、信息基准

1.1 查询说明

  • 查询日期:2026-10-19。
  • 信息获取方式:纯官方资料溯源(openresty.org 官方站点、官方博客 blog.openresty.com、GitHub 官方仓库 openresty/openresty),本文不做本地安装与运行实测。
  • 版本结论:本次介绍的版本为 OpenResty 1.31.1.1(2026-05-13 发布,基于 NGINX 1.31.1 与 LuaJIT)。OpenResty 同时并行维护历史基线版本线(1.29.2 与 1.27.1),最新稳定版以 openresty.org 下载页为准。

1.2 版本依据

项目实查结果(2026-10-19)来源
最新稳定版openresty-1.31.1.1.tar.gz(2026-05-13)openresty.org/en/download.html(下载页标注 "Lastest release")
历史维护线1.29.2 线(GitHub tag v1.29.2.4,2026-05-18);1.27.1 线(1.27.1.2,官方博客 2026-08-20 公告)github.com/openresty/openresty/tags;blog.openresty.com
上游 NGINX 基线1.31.1(1.31.1.1 版本号前缀);当前 NGINX mainline 为 1.31.7、stable 为 1.30.6nginx.org/en/download.html
代码仓库openresty/openresty(约 14k stars,shields.io 实查)github.com/openresty/openresty
开源许可BSD-2-Clause(2-clause BSD)openresty.org 版权声明
获取入口openresty.org/en/download.html 与官方 Linux 软件源openresty.org/en/linux-packages.html

1.3 官方来源清单

来源地址
官方站点https://openresty.org/en/
下载页https://openresty.org/en/download.html
官方 Linux 软件源https://openresty.org/en/linux-packages.html
官方博客https://blog.openresty.com/en/
源码仓库https://github.com/openresty/openresty

二、软件概述

本文介绍的是 OpenResty 1.31.1.1(2026-05-13 发布,基于 NGINX 1.31.1 与 LuaJIT)。

OpenResty(又称 ngx_openresty)是一个把 NGINX 与 LuaJIT 运行时深度整合的可编程 Web 平台:它将标准 NGINX 打包进构建体系,并捆绑 lua-nginx-module、stream-lua-nginx-module、lua-resty-core 等官方维护的 Lua 扩展模块,使开发者能够用 Lua 脚本在 NGINX 的请求处理各阶段内运行业务逻辑,把 Web 服务器变成一个高性能的应用网关与 API 编排层。

OpenResty 由 OpenResty Inc.(章亦春主导)持续维护,同时提供 OpenResty Edge 等商业产品;开源版以 2-clause BSD 许可发布。凭借 NGINX 的事件驱动模型与 LuaJIT 协程,单个 OpenResty 进程可以在万级并发连接下执行 Lua 逻辑,它是 APISIX、Kong 等主流 API 网关的共同技术底座。

三、核心架构

3.1 NGINX + LuaJIT 的组合

  • NGINX 基座:继承 NGINX 的多进程 worker、事件驱动与非阻塞 IO 模型,负责连接管理与请求转发。
  • LuaJIT 运行时:每个 worker 内嵌一个 LuaJIT 虚拟机(Lua 5.1 方言 + JIT 编译),Lua 代码在请求阶段内联执行,无跨进程通信开销。
  • 协程化非阻塞:所有 IO(HTTP 调用、Redis/MySQL 访问等)通过 cosocket API 以同步写法获得非阻塞性能,由 NGINX 事件循环统一调度。

3.2 阶段化处理模型

OpenResty 把 Lua 执行点挂接到 NGINX 请求生命周期的各阶段,常用指令包括:init_by_lua(master 初始化)、init_worker_by_lua(worker 初始化)、rewrite/access_by_lua(请求改写与访问控制)、content_by_lua(生成响应)、balancer_by_lua(动态负载均衡)、log_by_lua(日志与指标采集)。开发时可按阶段拆分逻辑,详见本站 《OpenResty 配置参数详解(nginx.conf 与 Lua 指令)》。

3.3 官方捆绑组件

  • lua-nginx-module / stream-lua-nginx-module:HTTP 与 TCP/UDP(stream)四七层的 Lua 扩展。
  • lua-resty-core:基于 FFI 重写的高性能核心 API。
  • lua-resty- 库族*:官方维护的 Redis/MySQL/memcached 客户端、Lua RESTy 库等。
  • 第三方组件集成:构建时捆绑 OpenSSL/LuaJIT 等并打官方补丁(GitHub tag 更新记录显示 1.31.1.1 线使用 OpenSSL 3.5.6、PCRE2 10.47、zlib 1.3.2)。

四、功能特性

4.1 可编程网关能力

在 NGINX 原有静态配置能力之上,OpenResty 可以用 Lua 动态实现:动态 upstream 与灰度路由、按请求的鉴权与限流、协议转换与响应改写、WAF 规则引擎、A/B 测试与染色标记等(官方站点与 ngx_lua 文档口径)。

4.2 1.31.1 线与维护线状态

  • 1.31.1.1 为当前最新稳定版(2026-05-13),跟进 NGINX 1.31.1 主线。
  • 1.29.2 维护线持续发补丁(v1.29.2.4,2026-05-18,GitHub tags 实查)。
  • 1.27.1 维护线发布 1.27.1.2(官方博客 2026-08-20 公告,openssl-3.4.1 sess_set_get_cb_yield 补丁)。
  • 多线并行意味着存量项目可留在旧基线安全升级,新项目建议直接使用 1.31.1 线。

4.3 商业版差异

OpenResty Inc. 另提供 OpenResty Edge(多集群网关管控)、OpenResty X-Ray(动态追踪与性能诊断)等商业产品;开源版仅包含 openresty.org 发布的源码与二进制发行物。

五、快速上手

以下步骤转述自 openresty.org 官方下载页与 Linux 软件源文档,本文不做本地实测。

5.1 从官方软件源安装(Ubuntu/Debian 示例)

官方维护各发行版的 apt/yum 软件源,Ubuntu 路径为按官方 linux-packages 文档配置 openresty 源后执行:

sudo apt-get install -y openresty

官方同样提供 Docker 镜像(Docker Hub openresty/openresty)与 macOS Homebrew(brew install openresty)两种形态。

5.2 最小 Lua 示例

在 nginx.conf 的 server 块中加入阶段指令(官方 ngx_lua 文档示例结构):

server {
    listen 8080;
    location /api {
        content_by_lua_block {
            ngx.say("hello, OpenResty")
        }
    }
}

重载配置后访问 /api 即由 Lua 生成响应;进一步可在同一 location 中使用 ngx.location.capture、cosocket 等官方 API 组合上游调用逻辑。完整指令与 API 参考见官方文档站点 https://openresty.org/documentation/ 。

5.3 验证

按官方文档口径,安装后以 openresty -t 检查配置语法,openresty(等价 nginx 命令族)启动/重载服务,日志位于 NGINX 标准日志路径。

六、适用场景与限制

6.1 适用场景

  • 自研 API 网关/统一接入层:需要深度定制路由、鉴权、限流逻辑,且希望贴近 NGINX 性能上限。
  • Web 应用服务化:用 Lua 直接在边缘聚合多个后端(Redis/MySQL/HTTP)返回结果。
  • 四七层混合流量处理:stream 模块支持 TCP/UDP 的 Lua 化处理。
  • 作为 APISIX/Kong 的底座:选型上层网关时理解其运行时依赖。

6.2 限制与注意事项

  • ** Lua 开发模型**:业务逻辑以 Lua 模块形态嵌入 NGINX,缺乏上层网关的声明式配置与管理界面,团队需要承担自建运维体系成本。
  • 配置变更:路由与逻辑修改需维护 nginx.conf/Lua 代码并 reload,动态热更新能力取决于自研实现(上层网关 APISIX/Kong 在这方面开箱即用)。
  • 版本线选择:官网下载页最新版与 GitHub 发布节奏存在时间差(官方博客独立公告),升级前应核对 openresty.org 下载页口径。
  • JIT 与内存:LuaJIT 调优(jit 开关、共享内存分区规划)有一定门槛,大流量场景需专门压测。

七、同类选型对比

7.1 候选概览

工具定位开源许可
OpenResty 1.31.1.1NGINX+LuaJIT 可编程 Web 平台BSD-2-Clause
Nginx 1.30.6(stable)/1.31.7(mainline)高性能 Web 服务器与反向代理BSD-2-Clause
Apache APISIX 3.19基于 OpenResty 的动态 API 网关Apache-2.0
Kong Gateway 3.9基于 OpenResty 的插件化 API 网关Apache-2.0

7.2 量化对比(2026-10-19 实查)

维度OpenResty 1.31.1.1Nginx 1.30.6APISIX 3.19Kong 3.9
开源许可BSD-2-ClauseBSD-2-ClauseApache-2.0Apache-2.0
GitHub stars约 14k(openresty/openresty)约 32k(nginx/nginx)17237(apache/apisix)44279(Kong/kong)
最近发版1.31.1.1(2026-05-13,官网下载页)stable 1.30.6 / mainline 1.31.7(nginx.org)3.19.0(2026-09-28)3.9.4(2026-10-12)
版本节奏基于 NGINX 基线的年份命名(1.29/1.31),多维护线并行stable/mainline 双线,持续补丁minor 约每两月一个补丁线稳健,3.9 系列年内三连补丁
抽象层级Lua 脚本级(自己写网关逻辑)静态配置级声明式路由+插件+控制台声明式路由+插件+Admin API
适用角色底座/自研平台Web 服务与反代开箱 API 网关开箱 API 网关

(stars 与发版时间取自各项目 GitHub 页面、openresty.org 与 nginx.org 实查;APISIX/Kong 数据同日实查自各自 Releases 页面。)

7.3 选型建议

只做 Web 服务与反向代理、不需要内嵌业务逻辑的,直接选 Nginx(可参考本站 《Nginx 1.30.6 介绍与选型指南》);需要在接入层做复杂可编程逻辑并愿意自建管理面的,选 OpenResty 作为底座;希望开箱获得路由声明、插件市场与管理界面,则在 APISIX 与 Kong 之间选择(两者都构建在 OpenResty 之上,可分别参考 《Apache APISIX 3.19 介绍与选型指南》 与 《Kong 3.9 介绍与选型指南》)。简言之:OpenResty 是"造网关的材料",APISIX/Kong 是"造好的网关"。

八、参考链接