【问题标题】:how can we block access from foreign countries using nginx?我们如何使用nginx阻止来自国外的访问?
【发布时间】:2023-02-26 02:58:45
【问题描述】:

如果客户不在意大利,客户要求我们阻止对每个 http (80+443) 服务的访问

坏主意,我知道,但客户支付...

请问如何在 nginx 上实现 geoip 过滤器。

我们没有 nginx plus。所以我认为我不能使用官方 GeoIp 插件(如果这是正确的名称)

【问题讨论】:

    标签: nginx


    【解决方案1】:

    您可以允许意大利的所有 IP 地址并拒绝 NGINX 中的其他地址。

    IP国家列表,可以从https://www.ip2location.com/free/visitor-blocker导出

    然后您可以编辑文件 /etc/nginx/sites-enabled/website.conf 并添加以下行。

    allow <ip>;
    allow <ip>;
    deny all;
    

    【讨论】:

      【解决方案2】:

      您可以使用 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;
      }
      

      【讨论】:

        猜你喜欢
        • 2023-03-17
        • 1970-01-01
        • 1970-01-01
        • 2012-07-23
        • 2020-05-14
        • 2015-09-02
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多