我试图在nginx实例后隐藏弹性搜索。我正在使用access_by_lua_file
指令。我的问题是,我希望打开对弹性搜索中可用的许多端点的访问,这些端点不会修改文档。现在我正在使用此指令限制访问:
location / {
auth_basic "Protected Elasticsearch";
auth_basic_user_file passwords;
access_by_lua_file '{{ nginx.lua_file_path }}';
proxy_pass http://elasticsearch;
proxy_redirect off;
}
这很好用,除了我不希望人们被迫提供服务的用户名。
我怎样才能做以下事情之一(或者某人有更好的方法)。
创建一个类似的位置指令,假定其为通用用户,如果请求失败,请移至我上面提供的位置。
当有人不提供用户时,强制nginx假定它是经过身份验证的用户(具有最低权限)。例如,当没有提供用户时,我们假设我们已经使用用户all
进行了身份验证(应该能够根据lua文件读取大多数内容)。
lua文件基本上枚举所有可能的请求,并将它们分组为“所有”组/用户(对于每个人)和“admin”组/用户以确定请求是否可接受。我本质上想要欺骗nginx,假设在没有传递用户名时它是“全部”用户名。