在 Nginx 中为多个站点阻止恶意机器人

在 Nginx 中为多个站点阻止恶意机器人

我需要阻止大量机器人抓取托管在 Ubuntu 16.04 机器上运行的 Nginx 网络服务器上的数百个网站。

我发现了一个相当简单的例子这里 (代码的重要部分如下)但似乎此功能仅在服务器块内可用(因为 IF 语句)并且我认为这是一个糟糕的想法,特别是当机器上有大量站点时。

  if ($http_user_agent ~* (ahrefs|wget|crawler|majestic) ) {
    return 403;
  }

所以,问题是,是否可以从主文件实现类似的功能nginx.conf,并适用于文件夹中当前定义的所有域sites-enabled以及将来添加的域?

我还阅读了有关地图方法的文章,并在 GitHub 上找到了一个使用它的完整项目 -https://github.com/mariusv/nginx-badbot-blocker但它仍然需要编辑文件夹中的所有文件sites-enabled,这对于几百个已经启动并运行的站点来说将花费太多时间。

相关内容