如何检查 nginx 是否使用 LuaJit 而不是 Lua?

我使用nginx安装了http-lua-module,编写了一个完美运行的脚本,但我想确保nginx使用LuaJit而不是Lua(因为我的研究表明LuaJit更快)。

我在.bushrc文件中添加了以下代码:

export LD_LIBRARY_PATH=/usr/local/luajit/lib:$LD_LIBRARY_PATH
export LUAJIT_LIB=/usr/local/luajit/lib
export LUAJIT_INC=/usr/local/luajit/include/luajit-2.0

我还重新编译了nginx,现在我只想确保它使用LuaJit。

点赞
用户2789404
用户2789404

编辑你的nginx.conf文件,在server {}块中添加一个location

location = /lua {
    default_type text/plain;
    content_by_lua '
        if jit then
            ngx.say(jit.version)
        else
            ngx.say("Not LuaJIT!")
        end
    ';
}

然后启动你的nginx服务器,通过curl或你喜欢的浏览器访问/lua。如果你看到像“LuaJIT 2.0.2”这样的输出,那么你正在使用LuaJIT;否则,如果你看到“Not LuaJIT!”这样的输出,那么你正在使用标准的Lua 5.1解释器。

另一种更快速的方法是检查与您的nginx可执行文件链接的Lua DSO文件是否使用了动态链接(通常情况下是这样):

ldd /path/to/your/nginx/sbin/nginx|grep -i lua

如果你看到像这样的东西

libluajit-5.1.so.2 => /usr/local/openresty-debug/luajit/lib/libluajit-5.1.so.2 (0x00007fb3d38f6000)

那么你正在使用LuaJIT。

2013-09-27 21:24:18