Lua#
Lua 模块将 Lua 编程语言集成到 Angie 的事件驱动处理模型中,允许通过 Lua 脚本扩展服务器功能。模块由两个组件组成:
lua-nginx-module
— openresty/lua-nginx-modulestream-lua-nginx-module
— openresty/stream-lua-nginx-module
安装#
要 安装 模块,请使用以下软件包之一:
Angie:
angie-module-lua
Angie PRO:
angie-pro-module-lua
功能示例#
典型的使用场景包括:
聚合并处理多个
upstream
服务器的输出(如 proxy、drizzle、postgres、redis、memcached 等);在请求转发至后端之前,实现访问控制与安全逻辑;
修改响应头部;
从外部数据源(如 redis、memcached、mysql、postgresql 等)获取后端信息,并动态选择
upstream
;在
content handler
中构建完整的 Web 应用;在 rewrite 阶段执行 URL 路由;
为子请求和
location
块实现高级缓存策略。
LuaJIT 环境在性能方面堪比 C,具备高速执行和低内存占用的优势,因此在 Angie 中集成 Lua 极为高效。
加载模块#
使用 Lua 模块前需要先加载 ndk
模块。模块需在 main{}
上下文中加载,如下所示:
load_module modules/ndk_http_module.so;
load_module modules/ngx_http_lua_module.so; # 用于 HTTP
load_module modules/ngx_stream_lua_module.so; # 用于 Stream
内置 Lua 库#
以下第三方库会随 Lua 模块一同安装:
更多信息#
详细文档与源代码请见: