使用lua-nginx-module可以把lua嵌入到nginx中,使用lua在nginx下开发一定的业务逻辑。
编译安装
首先编译安装LuaJIT。
LuaJIT使用JIT编译技术可以把Lua脚本直接编译成机器代码由CPU执行。
从这里下载LuaJIT的源码。解压缩后进入源码目录:
make install PREFIX=/usr/local/luajit接下来下载ngx_devel_kit和lua-nginx-module的源码。
从这里下载安装最新的ngx_devel_kit (NDK) module,并解压缩。
NDK是一个扩展Nginx服务器功能的模块,好多第三方的模块都是基于NDK的基础上开发的。
从这里下载lua-nginx-module的源码,并解压缩。
下载nginx的源码,解压缩之后进入源码目录:
export LUAJIT_LIB=/usr/local/luajit/lib
export LUAJIT_INC=/usr/local/luajit/include/luajit-2.0
./configure \
--with-http_ssl_module \
--with-http_realip_module \
--user=www \
--group=www \
--add-module=/path/to/ngx_devel_kit \
--add-module=/path/to/lua-nginx-module
make
make install启动nginx:
echo "/usr/local/luajit/lib" > /etc/ld.so.conf.d/usr_local_luajit_lib.conf
ldconfig
systemctl start nginx验证安装
下面简单验证一下nginx lua module的安装。 修改nginx.conf:
location = /hello {
content_by_lua '
ngx.say("helloworld")
ngx.log(ngx.INFO, "HelloWorld")
';
}
location = /luaversion {
content_by_lua '
if jit then
ngx.say(jit.version)
else
ngx.say(_VERSION)
end
';
}
./nginx -t
./nginx -s reload使用curl请求http://<hostname>/hello和http://<hostname>/luaversion确认能够输出结果