我想使用 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