我使用 Nginx 来处理 HTTP 请求。在访问日志检查过程中,我发现了很多来自同一个 IP 地址的可疑请求。我想将 Nginx 配置为拒绝来自类似主机的连接;我不认为会有很多主机,因为这是多年来的第一个主机。
问问题
1101 次
1 回答
1
这基本上是 Nginx geo-ip 模块的工作原理,我做了类似的事情来将我网站上的 Google 爬虫列入白名单。
在您的http
块中定义一个geo
指令并添加您希望阻止的 CIDR ip 范围:
geo $badips {
default 0;
64.233.160.0/19 1;
66.102.0.0/20 1;
...
}
这会将变量的值设置$badips
为1
来自这些 IP 地址的请求。
然后在您的server
块中,在任何location
块之前,添加:
if ($badips) {
return 444;
}
重新加载 Nginx 就是这样,将触发器$bdips
设置为 1 的请求将是服务器 444 响应代码(如果您愿意,可以将其更改为另一个)。
如果您想将被禁止的地址保存在不同的文件中,那么您可以这样做,并在geo
指令中添加include path/to/file;
. 包含文件中的语法必须与上述相同。
于 2018-09-28T14:12:35.303 回答