gpt4 book ai didi

Nginx IP 白名单

转载 作者:行者123 更新时间:2023-12-03 01:56:41 29 4
gpt4 key购买 nike

我想将我的 nginx 代理服务器配置为仅允许某些 IP 访问它。

据我所知,这通常是在配置文件中完成的,带有允许和拒绝列表,但如果可能的话,我需要一个不同的选项,因为我的白名单非常大。我还需要将其链接到一个网站,以便当用户登录时,用户将能够更新用户的 IP(如果发生更改)。

简而言之,列入白名单的用户将能够使用我的代理服务器,但如果由于任何原因用户的 IP 发生变化,该用户仍然可以登录我的网站并更新该白名单 IP。

我需要帮助的地方

nginx 有没有办法从外部源(例如 htaccess 或 mysql)读取 IP 白名单?如果是这样,该列表的最佳格式是什么,以便可以轻松链接并自动更新?我计划专业地构建该网站,以便当用户登录其帐户时,白名单会自动更新。因此,我希望我的白名单采用最适合设计人员使用的格式,以便更轻松地将白名单与用户帐户集成。

最佳答案

我知道有两种方法可以解决这个问题。

  1. 单独配置中的允许列表:适用于所有常见的 NginX 安装

    您可以将每个站点的所有允许语句放入一个简单的文本文件中,该文件只包含允许语句。将其包含在客户端的服务器 block 下。根据需要使用脚本来更改列表。最后,每次更新允许列表时重新加载(而不是重新启动)nginx 配置。这可能如下所示:

    cat /var/www-allow/client1-allow.conf
    allow 192.168.1.1;
    allow 10.0.0.1;

    cat /etc/nginx/sites/client1.conf
    ...
    server {
    include /var/www-allow/client1-allow.conf;
    deny all;
    }

    echo Test NginX configuration
    nginx -t

    echo Reload NginX configuration (**adjust for your setup**)
    service nginx reload
  2. 使用嵌入式Lua:需要自定义编译NginX

    使用第 3 方嵌入式 Lua 附加模块从源代码重新编译 NginX。使用lua脚本主动拒绝不支持的IP地址。请参阅 access_by_lua 下的第二个示例。您可以通过多种方式使用该附加组件。我建议使用 access_by_lua_file 将 lua 脚本放在外部位置。

这两种方法仍然需要您付出一些努力。我认为目前还没有可满足您特定目标的直接解决方案。

关于Nginx IP 白名单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13917866/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com