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中的列表。

那天晚上,這阻止了爬蟲的浪潮,我再也沒有被驚醒。這是一個日益嚴重的問題——很大程度上是一場我最終會輸的追逐——與那些由缺乏經驗、輕蔑甚至赤裸裸剝削的公司或初創公司運營的不良爬蟲和不良規則作鬥爭。

你們這些黑客不應該這樣掃描網絡。所以,舉起護盾吧。