AI News HubLIVE
站内改写2 分钟阅读

在您的Mastodon服务器上阻止AI爬虫:Nginx版

本文介绍如何通过Nginx配置阻止AI爬虫对Mastodon服务器的过度抓取,基于作者的真实经历——服务器夜间因AI爬虫而负载过高。提供了具体的步骤:使用nginx-block-ai-bots.conf配置文件,并更新robots.txt,从而避免被爬虫打扰。

来源Hacker News AI作者: speckx

在深夜收到服务器警报通知是最糟糕的事情之一。你的大脑飞速运转——我的冗余是否在工作?我该去拿灭火器吗?——你知道在卧室里发光的SSH会话会吵醒你的配偶。然后你就有两个问题了。

前几天我就遇到了这样的事,竟然是为了我那台运行Mastodon服务器的简陋单实例。这是一个资源极少的微型服务器,因为它不需要太多资源;我是唯一的日常活跃用户,其他家庭成员只是偶尔使用。负载从来不是问题,但那天晚上,有些东西让网络变得非常非常糟糕。

是AI,当然是因为AI。具体来说,AI爬虫毫无理由地疯狂抓取。我以前就注意到过,但这是第一次发现它们在我的Mastodon服务器上游荡。

为了给自己争取机会,我迅速在Mastodon的Nginx配置中加入了一个include指令来阻止上述AI爬虫。我基于nginx-block-ai-bots.conf进行了配置,该文件也作为我其他基础设施的前端使用。

Mastodon文档中没有关于如何做到这一点的具体说明——为什么会有呢?——但对于那些寻求解决方案的人,希望这能有所帮助:

在你的Mastodon服务器上,要么克隆ai-robots-txt/ai.robots.txt仓库以获取相关的nginx-block-ai-bots.conf文件,要么编写一个curl脚本,通过cron作业每周抓取一次。

如果你按照Mastodon的Nginx安装文档进行配置,那么你很可能有一个/etc/nginx/sites-available/mastodon或类似的Nginx配置文件(我的配置文件基于域名,因为我是这样配置虚拟主机的,所以你的情况可能不同,但它肯定在那里)。

在该文件中,有一个类似下面的server块:

server { listen 443 ssl http2; listen [::]:443 ssl http2; server_name example.com; ssl_protocols TLSv1.2 TLSv1.3; # 等等等等 }

在该server块中写入include指令,引用nginx-block-ai-bots.conf:

server { # 尽可能多地阻止AI爬虫,这样我就不用支付$$$$ include /your/path/here/nginx-block-ai-bots.conf; listen 443 ssl http2; listen [::]:443 ssl http2; server_name example.com; ssl_protocols TLSv1.2 TLSv1.3; # 等等等等 }

重新加载Nginx,例如systemctl reload nginx.server,或者根据你的服务器设置进行。

就这样。另外,你还可以更新${Mastodon目录}/public/robots.txt,添加ai.robots.txt/robots.txt中的列表。

那天晚上,这阻止了爬虫的浪潮,我再也没有被惊醒。这是一个日益严重的问题——很大程度上是一场我最终会输的追逐——与那些由缺乏经验、轻蔑甚至赤裸裸剥削的公司或初创公司运营的不良爬虫和不良规则作斗争。

你们这些黑客不应该这样扫描网络。所以,举起护盾吧。