问题出现得很突然,日志倒是留得挺全。日志里 Applebot 一周从两万次涨到六万次,robots 里 Applebot 分组写的是 Disallow: /,抓取量却没降,带宽被占掉三成。试过整段删掉重写,第二天又回到六万次。

刚开始盯着「部分请求来自 Apple 的代理段,UA 写着 Applebot 但 rDNS 不匹配」,折腾了半个多小时,排掉了。

把日志和配置对完,能解释这个现象的基本就这几处。有 Applebot 与 Applebot-Extended 两个 UA,只挡了其中一个。少数情况下是分组后面紧跟 User-agent: *,规则被合并覆盖。

还有一种情况,CDN 回源日志把图片请求重复计数,看着像翻了三倍。

动手时先按 UA 数总量

grep -c "Applebot" /var/log/nginx/access.log

然后看 robots 里的分组写法

curl -s https://www.example.com/robots.txt | grep -A2 -i applebot

两个 token 分开写并留空行

printf 'User-agent: Applebot-Extended\nDisallow: /\n\n' >> /var/www/html/robots.txt

剩下的就是按 IP 看请求是否集中

awk '{print $1}' /var/log/nginx/access.log | sort | uniq -c | sort -rn | head

改完先别撤,确认这几项。两个 UA 的请求量都降到每天一千次以内,带宽曲线回到开启前,正常用户的访问没有受到影响。

这里还有个坑。Applebot 同时服务 Siri 和 Spotlight,全站屏蔽会连带影响这些入口,图片和静态资源可以单独放行。监控比日志更早给出信号,事后回看经常能提前半小时发现异常。

作者 9823189