【发布时间】:2023-02-26 02:58:45
【问题描述】:
如果客户不在意大利,客户要求我们阻止对每个 http (80+443) 服务的访问
坏主意,我知道,但客户支付...
请问如何在 nginx 上实现 geoip 过滤器。
我们没有 nginx plus。所以我认为我不能使用官方 GeoIp 插件(如果这是正确的名称)
【问题讨论】:
标签: nginx
如果客户不在意大利,客户要求我们阻止对每个 http (80+443) 服务的访问
坏主意,我知道,但客户支付...
请问如何在 nginx 上实现 geoip 过滤器。
我们没有 nginx plus。所以我认为我不能使用官方 GeoIp 插件(如果这是正确的名称)
【问题讨论】:
标签: nginx
您可以允许意大利的所有 IP 地址并拒绝 NGINX 中的其他地址。
IP国家列表,可以从https://www.ip2location.com/free/visitor-blocker导出
然后您可以编辑文件 /etc/nginx/sites-enabled/website.conf 并添加以下行。
allow <ip>;
allow <ip>;
deny all;
【讨论】:
您可以使用 Nginx geo module 创建一个基于客户端 IP 地址的变量,您可以指定单独的 IP 地址或 CIDR 范围:
geo $italyip {
default 0;
5.1.44.0/24 1;
5.2.0.0/20 1;
5.8.96.0/19 1;
}
然后使用您的变量来决定返回给客户端的内容
if ($italyip = 0){
return 444;
}
【讨论】: