如何限制来自外部 IP 的 ngnix 位置的访问

如何限制来自外部 IP 的 ngnix 位置的访问

我想限制外部 IP 对 ngnix 位置的访问。我将以下配置添加到 ngnix 配置文件,但我不确定这样做是否正确。有没有更好的替代方法来限制外部 IP 访问某个位置?

map $proxy_add_x_forwarded_for $remote_ip {
    default     $proxy_add_x_forwarded_for;
    ""          $http_x_real_ip;
}
map $remote_ip $isinternal {
    ~^127\.                                             1;
    ~^10\.                                              1;
    ~(^172\.1[6-9]\.)|(^172\.2[0-9]\.)|(^172\.3[0-1]\.) 1;
    ~^192\.168\.                                        1;
    default                                             0;
}

...

location /app/sniper {
    if ($isinternal != 1) { return 403; }
    ...
}

提前致谢...

答案1

你应该使用 nginx地理IP 地址映射模块。您的配置将如下所示:

geo $internal {
    default        0;
    127.0.0.0/8    1;
    10.0.0.0/8     1;
    172.16.0.0/20  1;
    192.168.0.0/24 1;
}

location /app/sniper {
    if ($internal != 1) {
        return 403;
    }
}

相关内容