Как проверить, использует ли nginx LuaJit, а не Lua?

Я установил http-lua-module с nginx, сделал script, который отлично работает, но теперь я хочу быть уверенным, что 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.

Ответы

Ответ 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-сервер, а затем войдите /lua в curl или в ваш любимый веб-браузер. Если вы видите такие результаты, как "LuaJIT 2.0.2", вы используете LuaJIT; в противном случае, если вы видите "Not LuaJIT!", то вы используете стандартный интерпретатор Lua 5.1.

Еще один быстрый способ - проверить файл Lua DSO, связанный с исполняемым файлом nginx, если используется динамическое связывание (что обычно бывает):

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.