You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

已删除许久的图片仍出现在错误日志中,原因何在?

定位Nginx文件不存在错误的源头方法
  • 抓请求来源细节
    日志里的client: 40.111.21.45是核心线索,直接用whois 40.111.21.45查IP归属,判断是爬虫、普通用户还是内部服务。另外给Nginx配置添加UA日志,看看请求来自浏览器、搜索引擎爬虫还是恶意扫描工具——多数情况下是搜索引擎缓存或爬虫在抓取旧内容。

  • 排查网站内部残留引用
    即便删除了数据库里的附件,仍可能有遗漏:

    • 清空WordPress的所有缓存,包括插件缓存、CDN缓存,缓存中的旧页面大概率还在引用已删除的文件。
    • 用服务器搜索命令遍历网站目录:grep -r "/wp-content/uploads/2019/12/my-image-11.jpg" /www/mydomain/public/,主题文件、自定义模板、插件里的硬编码链接很容易被忽略。
    • 别忘了检查WordPress的草稿、回收站文章,这类未发布内容也可能被爬虫抓取。
  • 核查外部与缓存的旧链接

    • 外部网站可能仍链接着你的旧图片,或搜索引擎缓存了旧页面。直接在搜索引擎中搜索该图片链接,查看是否有残留快照。
    • 检查RSS订阅内容,旧的RSS推送可能仍被客户端订阅,导致持续请求已删除文件。
  • 关联Nginx访问日志
    错误日志里的*1253339是请求ID,用这个ID去访问日志中检索:grep "1253339" /var/log/nginx/access.log,能看到请求的Referer(来源页面),直接定位到带旧链接的页面。

  • 临时添加详细日志抓信息
    修改Nginx对应server块的配置,新增详细日志格式,记录Referer和UA信息:

    log_format detailed '$remote_addr - $remote_user [$time_local] "$request" '
                      '$status $body_bytes_sent "$http_referer" '
                      '"$http_user_agent" "$http_x_forwarded_for"';
    access_log /var/log/nginx/mydomain_access.log detailed;
    

    重启Nginx后,新日志里的Referer会直接显示请求来源,快速定位问题。

内容的提问来源于stack exchange,提问作者Krisztian Toth

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.05 19:19:53