蜘蛛无需HTTPS白名单或User-Agent放行,因其不带Referer,只需valid_referers none即可通过防盗链;防盗链应仅限静态资源路径,HTTPS配置重点在HTTP/2、OCSP Stapling和合理缓存。
不需要单独为搜索引擎蜘蛛配置 HTTPS 白名单,也不建议按 User-Agent 做特殊放行。蜘蛛(如 Baiduspider、Googlebot)本身不携带 Referer 头,只要 Nginx 的防盗链规则中包含 valid_referers none,它们就能天然通过校验,且不受协议(HTTP/HTTPS)差异影响。
多数误拦蜘蛛的问题,源于防盗链逻辑用错了位置或漏了基础匹配项:
none,例如:valid_referers none *.example.com example.com;
这是让无 Referer 请求(含绝大多数爬虫)直接进入白名单的最简、最可靠方式。
location ~* .(jpg|jpeg|png|gif|css|js|woff2?)$ 这类静态后缀匹配块内,不要放在 location / 或 HTML 接口上——蜘蛛要抓的是页面内容,不是图片链接。https://example.com 和 http://example.com 的域名比对,也就不存在因协议不一致导致拦截的问题。蜘蛛访问走 HTTPS 是默认行为,真正影响抓取效率的是响应速度和连接复用能力:
http2,提升并发请求数与头部压缩效率:listen 443 ssl http2;
ssl_stapling on;
ssl_stapling_verify on;
ssl_trusted_certificate /etc/letsencrypt/live/example.com/chain.pem;
Cache-Control: public, max-age=300(5 分钟),既允许 CDN 缓存,又保证蜘蛛能及时看到更新;静态资源可设更长缓存,避免重复抓取。以下操作看似“精准”,实则多余甚至有害: