服务器日志里图片请求的 Referer 大量来自其他站点,带宽被吃掉,自己的页面加载反而变慢。
把日志和配置对完,能解释这个现象的基本就这几处。图片没有做来源校验;CDN 未开启 Referer 白名单;搜索引擎图片抓取与盗链混在一起判断。
第一件事是统计图片请求的来源
awk '{print $11}' access.log | sort | uniq -c | sort -rn | head
然后配置防盗链白名单
valid_referers none blocked server_names *.example.com;
剩下的就是确认图片搜索仍可抓取
curl -sI -e 'https://www.google.com/' https://www.example.com/1.jpg | head -1
这台环境是别人交接的,不少默认值被动过,只能一项项核。
同事提醒我看一下最近一次发布,时间点确实对得上。
别只看报错消失,验证要多做一步。盗链请求被拦截,带宽回落,自己站点的图片搜索收录不受影响。
提醒一点。防盗链规则里一定要放行空 Referer 和搜索引擎,否则蜘蛛抓图会被挡住,图片流量会一起消失。先用日志观察一周再决定是否开启,误杀正常引用的代价更高。改动前把原配置备份一份,出问题能马上回滚,这比任何技巧都实用。