Skip to content

Nginx 安装 Lua

Nginx 默认是没有 Lua 的,需要手动安装,Openresty 提供了 lua-nginx-module 来集成 Lua。

下载

下载 nginx 以及 lua-nginx-module 相关的模块的源码,通过源码自行编译nginx和lua。

名称版本说明
nginx1.25.3下载
lua-nginx-module0.10.25下载
lua-resty-core0.1.27下载
ngx_devel_kit0.3.3下载
luajit2v2.1-20231117下载

以上版本是依据 Openresty 1.25.3 的依赖列表配置的。

注意:lua-nginx-module 从 0.10.16 开始部分函数被拆分到 lua-resty-core 中,例如 ngx.req.get_uri_args(),所以需要安装 lua-resty-core,同时 lua-resty-corelua-nginx-module 的版本有要求需要一一对应,对应关系可以在 lib\resty\core\base.lua 中找到。

LuaJIT 支持的Cpu架构,上面使用的luajit2是openresty在LuaJIT基础的修改版本,可以更好的和lua-nginx-module配合使用。

luajit cpu architecture

编译安装 luajit

luajit2编译安装到/usr/local/luajit2中。

sh
# 解压缩
tar zxvf luajit2.tar.gz
cd luajit2
# 编译
make
# 安装
make install PREFIX=/usr/local/luajit2
# 配置环境变量
echo "export LUAJIT_LIB=/usr/local/luajit2/lib" >> /etc/profile
echo "export LUAJIT_INC=/usr/local/luajit2/include/luajit-2.1" >> /etc/profile

编译安装 lua-nginx-module

sh
# 解压缩
tar zxvf lua-nginx-module-0.10.25.tar.gz
cd lua-nginx-module-0.10.25
# 编译
make
# 安装
make install PREFIX=/usr/local

编译安装 lua-resty-core

sh
# 解压缩
tar zxvf lua-resty-core-0.1.27.tar.gz
cd lua-resty-core-0.1.27
# 编译
make
# 安装
make install PREFIX=/usr/local

解压缩 ngx_devel_kit

不需要安装,直接解压即可

sh
# 解压缩
tar zxvf ngx_devel_kit-0.3.0.tar.gz

编译安装 nginx

sh
# 解压缩
tar -zxvf nginx-1.25.3.tar.gz
cd nginx-1.25.3
# 编译参数配置
./configure --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module --with-http_realip_module --with-http_sub_module --with-http_gzip_static_module --with-pcre --with-ld-opt=-Wl,-rpath,/usr/local/luajit2/lib --add-module=/usr/local/ngx_devel_kit-0.3.0 --add-module=/usr/local/lua-nginx-module-0.10.25
# 编译
make
# 安装
make install

引用 lua-resty-core 模块

修改nginx配置文件,在http全局配置添加lua配置:

lua
lua_package_path "/usr/local/lib/lua/../?.lua;;";

参考