使用 lua 根据 ID 重定向网址



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

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

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

任何帮助将不胜感激。

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

你可能的意思是openresty,也就是lua-nginx-module,它允许你在nginx中运行Lua代码以编程方式处理请求。


假设你已经安装并运行了一个工作的nginx + lua-nginx模块,你正在寻找的是rewrite_by_lua指令,它允许你根据他们的请求将客户端重定向到不同的地址。 (实际上,您可能希望改用rewrite_by_lua_blockrewrite_by_lua_file(

在 Lua 块中,您可以进行 API 调用、执行一些逻辑等,然后使用ngx.exec在内部重定向到某个 URI,或者使用ngx.redirect向客户端发送实际重定向。

如果要读取 JSON 或 YAML 文件,则应在init_by_lua中执行此操作,以便文件仅加载一次,然后保留在内存中。lua-cjson模块附带nginx,因此您可以使用它将json数据解析为Lua表。

最新更新