【问题标题】:How to check if nginx uses LuaJit and not Lua?如何检查 nginx 是否使用 LuaJit 而不是 Lua?
【发布时间】:2013-10-04 02:03:16
【问题描述】:

我用 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。

【问题讨论】:

  • if jit then print'LuaJIT' end
  • 嗨,Egor,你能告诉我应该在哪里写这个 if 语句,我是 nginx 和 lua 的新手
  • 我也是 nginx 新手。但是在 Lua 代码的任何地方,您都可以使用 if jit then .. end 语句来检查您是否在 LuaJIT 下运行。
  • 谢谢你,真的是一个答案
  • @Egor,答案框更大更方便写。

标签: nginx lua luajit


【解决方案1】:

编辑您的nginx.conf 文件,将location 添加到您的server {} 块中:

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

然后启动您的 nginx 服务器,然后在 curl 或您喜欢的 Web 浏览器中访问 /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。

【讨论】:

    猜你喜欢
    • 2022-07-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-06-26
    • 1970-01-01
    • 2020-05-12
    • 2022-01-23
    • 1970-01-01
    相关资源
    最近更新 更多