Прежде всего, nginx сам по себе не имеет интеграции с Lua;так что если у вас просто есть сервер nginx, вы вообще не можете писать его на Lua.
То, что вы, вероятно, имеете в виду, это openresty, он же.lua-nginx-модуль, который позволяет вам запускать код Lua в nginx для программной обработки запросов.
Предполагая, что у вас установлен и работает работающий модуль nginx + lua-nginx, что выищем директиву rewrite_by_lua
, которая позволяет перенаправить клиента на другой адрес в зависимости от его запроса.(Реально, вы, вероятно, захотите использовать взамен rewrite_by_lua_block
или rewrite_by_lua_file
)
Внутри блока Lua вы можете выполнять вызовы API, выполнять некоторую логику и т. Д., А затем перенаправлять на некоторый URI внутренне с помощьюngx.exec
или отправьте фактическое перенаправление клиенту с помощью ngx.redirect
.
Если вы хотите прочитать в файл JSON или YAML, вам следует сделать этов init_by_lua
, поэтому файл загружается только один раз и затем остается в памяти.Модуль lua-cjson
поставляется с nginx, так что вы можете просто использовать его для разбора ваших данных json в таблицу Lua.