这个坑值得记一笔。安全组开了机器人管理,默认把非浏览器请求都当可疑。订阅器和抓取器请求 /feed 全被 403,订阅数一周归零,抓取也读不到最新内容。
刚开始盯着「挑战页直接返回 403,客户端拿不到可解析的 XML」,折腾了半个多小时,排掉了。
排查方向其实有限,先把可能性排一排。默认策略只看 UA,订阅器被归进未知客户端;/feed 路径没有单独的放行规则;只放行了浏览器,没考虑纯文本与 XML 请求。
上来先用订阅器 UA 复现一次
curl -sI -A 'Feedly/1.0' https://www.lu0.cn/feed
给 feed 路径加放行规则
然后把常见抓取器 UA 放进观察名单而不是拦截
等前面都确认过,再统计 feed 的 403 数量
awk '$9==403 && $7 ~ /feed/' access.log | wc -l
怎么算真的好了,看的是同一批现象。feed 恢复 200 并返回合法 XML,订阅数一周内回到原来水平,抓取器重新拉到新文章。
提醒一点。机器人策略的默认值是按普通站点调的,有 feed 和接口的站点必须按路径单独放行。这类问题最好一次改到位,反复小改反而容易把原因搅混。
