0

我使用 Nginx 来处理 HTTP 请求。在访问日志检查过程中,我发现了很多来自同一个 IP 地址的可疑请求。我想将 Nginx 配置为拒绝来自类似主机的连接;我不认为会有很多主机,因为这是多年来的第一个主机。

4

1 回答 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;
  ...
}

这会将变量的值设置$badips1来自这些 IP 地址的请求。

然后在您的server块中,在任何location块之前,添加:

if ($badips) {
  return 444;
}

重新加载 Nginx 就是这样,将触发器$bdips设置为 1 的请求将是服务器 444 响应代码(如果您愿意,可以将其更改为另一个)。

如果您想将被禁止的地址保存在不同的文件中,那么您可以这样做,并在geo指令中添加include path/to/file;. 包含文件中的语法必须与上述相同。

于 2018-09-28T14:12:35.303 回答