默认认证用户 nginx

我正在尝试将 Elasticsearch 隐藏在 Nginx 实例后面。我使用access_by_lua_file指令。我的问题是,我想打开许多 Elastic Search 中可用的不修改文档的端点。现在,我正在使用以下指令限制访问:

location / {
  auth_basic "受保护的 Elasticsearch";
  auth_basic_user_file passwords;

  access_by_lua_file '{{ nginx.lua_file_path }}';

  proxy_pass http://elasticsearch;
  proxy_redirect off;
}

这个方法很好用,但我不想让人们被迫提供服务用户名。

我该如何做到以下几点(或者也许有更好的方法)。

  1. 创建类似的位置指令,假设它是一个通用用户,如果请求失败,将其移动到我上面提供的位置。

  2. 强制 Nginx 假定它是一个经过身份验证的用户(权限最低),当有人没有提供用户时。例如,当没有提供用户时,我们假设我们已使用用户名all进行了身份验证(根据 Lua 文件,它应该能够读取大多数内容)。

Lua 文件基本上列出了所有可能的请求,并将它们分组到“全部”组/用户(针对每个人)和“管理员”组/用户中,以确定请求是否可接受。本质上,我希望欺骗 Nginx,让它在没有传递用户名时假定它是“全部”用户名。

点赞