![通过 IP 阻止/拒绝 nginx 连接的有效方法](https://linux22.com/image/1181417/%E9%80%9A%E8%BF%87%20IP%20%E9%98%BB%E6%AD%A2%2F%E6%8B%92%E7%BB%9D%20nginx%20%E8%BF%9E%E6%8E%A5%E7%9A%84%E6%9C%89%E6%95%88%E6%96%B9%E6%B3%95.png)
我想使用 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.conf
并allow
在其中添加指令:
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