我想配置我的nginx代理服务器,只允许某些it访问它。
据我所知,这通常是在配置文件中完成的,带有允许和拒绝列表,但如果可能的话,我需要一个不同的选项,因为我的白名单非常大。我还需要将此链接到一个网站,以便当用户登录时,用户将能够更新用户的IP,如果它已经改变。
简而言之,白名单上的用户将能够使用我的代理服务器,但如果由于任何原因用户的IP发生更改,用户仍然可以登录到我的站点并更新白名单上的IP。
我需要帮助的地方
有没有办法让nginx从外部源读取IP白名单,比如htaccess或mysql?如果是这样的话,什么是该列表的最佳格式,以便它可以很容易地链接和自动更新?我计划得到专业的网站建设,以便当用户登录到他们的帐户,白名单是自动更新。因此,我希望我的白名单是设计师可以使用的最佳格式,以便更容易将白名单与用户帐户集成。
发布于 2012-12-18 03:38:06
我知道有两种方法可以解决这个问题。
独立配置中的
您可以将所有allow语句放在一个简单的文本文件中,每个站点只包含allow语句。包括在客户端服务器块下。根据需要使用脚本更改列表。最后,每次更新允许列表时,重新加载(而不是重新启动) nginx配置。这可能如下所示:
cat /var/www- allow /client1-allow.conf allow 192.168.1.1;allow 10.0.0.1;cat /etc/nginx/site/client1.conf ...reload
使用第三方嵌入式Lua附加模块从源重新编译NginX。使用lua脚本主动拒绝不受支持的IP地址。请参阅access_by_lua下的第二个示例。您可以通过多种方式使用该附加组件。我建议使用access_by_lua_file将lua脚本放在外部位置。
这两种方法仍然需要您做出一些努力。我不认为已经有针对您的特定目标的插入式解决方案。
发布于 2014-09-26 09:13:25
也许nginx.shared.dict (http://wiki.nginx.org/HttpLuaModule#lua_shared_dict)会对你有所帮助?
https://stackoverflow.com/questions/13917866
复制相似问题