URL перенаправления на основе идентификатора с использованием lua - PullRequest
0 голосов
/ 23 сентября 2019

Я крайне новичок в Lua, а также в nginx. Мы пытаемся настроить аутентификацию.Я пытаюсь написать скрипт, который мог бы быть внедрен в мой NGINX, который бы фактически слушал конечную точку.

Мой API дал бы мне маркер.Я бы получил этот токен и проверил, существует ли он в моем YAML-файле или, возможно, JSON-файле.

в зависимости от привилегии, указанной в файле, я хотел бы перенаправить его на соответствующий URL с необходимыми разрешениями.

Любая помощь будет принята с благодарностью.

1 Ответ

0 голосов
/ 23 сентября 2019

Прежде всего, 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.

...