location = /xmlrpc.php {
  deny all;
  access_log off;
  return 444;
}

服务器日志里 xmlrpc.php 每天还有五百多次 POST,返回 403 之后请求依旧,来源分散在几十个 IP 上。这类现象通常不是突然出现的,往前翻半天日志能看到苗头。

追下去是这么回事:关掉 xmlrpc 只挡住了 pingback,trackback 走的是另一条入口,默认还开着。已经登记过你站点的旧博客会持续重发,日志看着像没生效。关闭入口不等于让对方停止发送请求。

这次卡住的地方就在「Pingback 请求残留」这一环,单独把它拎出来验证,别和其他改动混在同一次发布里。权限不要一口气开到最大,先加到够用再往上试,范围小才好收。

把复现步骤压到三条以内,交给同事也能跑出来,才算真的定位清楚。改动写完就同步给同事,下一个人踩同一个坑,成本还是你的。

处理上按这个顺序:在讨论设置里把接受 pingback 和 trackback 的勾都去掉,两个一起关;服务器层直接拦掉 xmlrpc.php 的 POST,返回 444 比 403 更省资源;已经存在的旧 pingback 评论批量删掉,别留在评论区里。

确认没问题再收工,日志里 xmlrpc.php 的 POST 请求降到零,评论区不再冒出旧文引用。

作者 9823189