现场是这样的。运营一次性给 1200 篇老文批量插内链 每篇加八条 站点当天新增链接近万条 加上 sitemap 全量重生成 蜘蛛抓取量翻 5 倍 PHP-FPM 打满 502 持续二十分钟
中间走过弯路,把「没有给抓取高峰做限流」当成主因,改完现象没变。
这类报错背后常见的原因有几处,逐个排除就行。批量更新没有分批 一次全部落库;sitemap 全量重生成 lastmod 集体变化;PHP-FPM 进程数按日常流量配置。
上来先按批次更新并控制每批数量
wp post list --post_type=post --fields=ID --format=ids | xargs -n 50 wp post update
给蜘蛛单独限速
limit_req zone=bot burst=20 nodelay;
临时调高 PHP-FPM 子进程上限
pm.max_children = 60
末了观察 502 与队列长度
tail -f /var/log/php-fpm/error.log
改之前我把相关日志按时间截了一段存着,事后对时间线用得上。
恢复的判定其实很直接。502 归零 抓取量回落到日常水平 更新任务在低峰跑完 页面响应时间正常。
任何批量内容操作都会变成一次抓取高峰 分批和限流是配套动作 不能只做一半。改动前把原配置备份一份,出问题能马上回滚,这比任何技巧都实用。
