通过 IP 阻止/拒绝 nginx 连接的有效方法

通过 IP 阻止/拒绝 nginx 连接的有效方法

我想使用 nginx 通过 IP 过滤几个不同的端点。我当前的解决方案是为每个端点剪切并粘贴以下代码:

    location /api0 {
        allow 123.45.67.89; 
        allow 98.765.43.21; 
        deny all;
        ......
    }

    location /api1 {
        allow 123.45.67.89; 
        allow 98.765.43.21; 
        deny all;
        ......
    }

    etc

有没有更有效的方法来设置这些 IP 过滤器?是否可以设置一个组,以便我可以将其用于配置文件中的所有端点?

我这里的主要问题是有时需要更改 IP 地址,这意味着我必须手动剪切和粘贴 IP,然后重新启动 nginx。

谢谢!

答案1

您可以使用include目录。创建一个文件allowlist.confallow在其中添加指令:

allow 123.45.67.89; 
allow 98.765.43.21; 

现在您可以在 nginx 配置中多次包含该文件的内容。

    location /api0 {
        include allowlist.conf;
        deny all;
        ......
    }

    location /api1 {
        include allowlist.conf;
        deny all;
        ......
    }

    etc

来源:https://blackfedora.dev/nginx-restricting-access-based-on-ip-address

相关内容