基于ID的重定向URL使用lua

我非常新手,从未使用过Lua以及nginx。我们正在尝试设置身份验证。 我正在尝试编写一个脚本,可以注入我的NGINX,实际上会侦听一个端点。

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

基于文件中提到的特权,我希望将其重定向到具有必要权限的相应URL。

任何帮助将不胜感激。

点赞
用户4984564
用户4984564

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

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


假设你安装和运行了一个可工作的nginx + lua-nginx-module,你要查找的是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表。

2019-09-23 09:23:01