Lua#

Lua 软件包将 Lua 编程语言集成到 Angie 的事件驱动处理模型中,允许使用 Lua 脚本扩展服务器的功能。 它由两个模块组成:

安装#

安装 该模块,请使用以下软件包之一:

  • Angie:angie-module-lua;

  • Angie PRO:angie-pro-module-lua

功能特性#

示例用例:

  • 聚合和处理来自各种 upstream 服务器的输出 (proxy、drizzle、postgres、redis、memcached 等);

  • 在将请求传递给后端之前实现访问控制和安全逻辑;

  • 修改响应头;

  • 从外部源检索上游服务器数据并动态选择 upstream;

  • content handler 内构建完整的 Web 应用程序;

  • 在重写阶段执行 URL 路由;

  • 为子请求和 location 块实现高级缓存。

LuaJIT 环境提供与 C 语言相当的性能,具有高执行速度和低内存使用率。这使得 Lua 集成在 Angie 中特别高效。

加载模块#

使用 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 模块一起安装:

  1. luajit2

  2. lua_chronos

  3. lua_cjson

  4. lua-dumper

  5. lua-ffi-zlib

  6. inspect.lua

  7. lua-resty-core

  8. lua-resty-hmac

  9. lua-resty-http

  10. lua-resty-jwt

  11. lua-resty-lrucache

  12. lua-resty-openidc

  13. lua-resty-openssl

  14. lua-resty-session

  15. lua-resty-string

其他信息#

完整的文档和源代码可在以下位置获取: