使用 lua 根据 ID 重定向 url

Redirect url based on ID using lua

我对 Lua 非常陌生,nginx.we 正在尝试设置身份验证。 我正在尝试编写一个可以注入我的 NGINX 的脚本,它实际上会监听一个端点。

我的api会给我一个令牌。我会收到此令牌并检查它是否存在于我的 YAML 文件或 JSON 文件中。

根据文件中提到的权限,我想将其重定向到具有必要权限的相应 url。

非常感谢任何帮助。

首先,nginx 本身没有任何 Lua 集成;所以如果你只有一个 nginx 服务器,你根本无法在 Lua 中编写脚本。

你的意思可能是 openresty,又名。 lua-nginx-module,它让你 运行 Lua nginx 中的代码以编程方式处理请求。


假设你有一个工作的 nginx + lua-nginx-module 安装和 运行ning,你正在寻找的是 rewrite_by_lua 指令,它可以让你重定向客户根据他们的要求发送到不同的地址。 (实际上,您可能想改用 rewrite_by_lua_blockrewrite_by_lua_file

在 Lua 块中,您可以进行 API 调用、执行一些逻辑等,然后在内部使用 ngx.exec or send an actual redirect to the client with ngx.redirect.

重定向到某个 URI

如果您想读入 JSON 或 YAML 文件,您应该在 init_by_lua 中这样做,这样文件只加载 一次 并且然后留在记忆中。 lua-cjson 模块随 nginx 一起提供,因此您可以使用它来将 json 数据解析为 Lua table.