没有不值得去解决的问题,也没有不值得去学习的技术!

WordPress Media CDN 迁移后的 Cloudflare Cache Rules 调整记录

图4:Cloudflare Edge TTL 配置、Cloudflare Browser TTL 配置

作者:

WordPress CDN 与全球加速实战

图16:浏览器访问正常,网站全球访问成功

(1) 从阿里云 DNS 到 Cloudflare 全球加速的完整迁移实战记录

这一套规则遵循 Cloudflare + WordPress 标准 CDN 架构:

(2) Cloudflare SSL/TLS 与 Cache Rules 配置实战

图12:评论实时生效

(3) WordPress + Cloudflare 推荐配置与 Cache Rules 实战优化(SSL / API / 缓存闭环完整记录)

CDN上线后的boce数据

(4) CDN 上线前后性能对比实测:WordPress 缓存误判修正与真实加速效果验证

【图9:boce 测试 cn-test,灰云直连阿里云 ECS,平均响应 0.478s】

(5) Cloudflare 免费版适合中国大陆 WordPress 主站吗?从缓存 HIT 到灰云直连阿里云 ECS 的实测复盘

【图1:腾讯云 EdgeOne 产品页,选择“立即使用”】

(6) 从 Cloudflare Free 迁移到腾讯云 EdgeOne:一次 WordPress 主站国内外加速实战

【图2:EdgeOne 上线后 boce 第二次测试,平均响应 0.354s,不可访问 2 个】

(7) Cloudflare Free 迁移到 EdgeOne 后到底快了多少?WordPress CDN 三阶段 boce 与 WebPageTest 实测对比

[图2,EdgeOne 昨日 L7 访问流量,显示 6.56 GB]

(8) EdgeOne 流量成本排查:将 WordPress uploads 静态资源迁移到 Cloudflare media 子域名

【图3,EdgeOne 301 请求的 URL Path 排行,集中在 /wp-content/uploads/ 图片路径】

(9) WordPress 图片迁移到 media 子域名后,EdgeOne 仍然出现大量 301 的排查与处理记录

图4:Cloudflare Edge TTL 配置、Cloudflare Browser TTL 配置

(10) WordPress Media CDN 迁移后的 Cloudflare Cache Rules 调整记录

在上一篇文章中,我记录了将 WordPress 上传资源迁移到独立 media.shuijingwanwq.com 子域名,并通过 Cloudflare 接管静态资源访问的过程。

上一篇文章:

这次调整是在迁移完成后的进一步优化。

迁移过程中,网站 CDN 架构发生了变化,但是 Cloudflare 中原有的 Cache Rules 并没有同步调整。

因此需要重新整理 Cloudflare 缓存策略,让它符合新的 CDN 架构。


一、当前 WordPress CDN 架构

之前:

Plaintext
整个 WordPress 网站
        |

Cloudflare

Cloudflare 负责:

  • HTML 页面
  • CSS
  • JS
  • 图片
  • 上传附件

因此 Cache Rules 中包含大量 WordPress 相关规则。


迁移之后,现在采用资源拆分方式:

Plaintext
用户访问网站

        |
        |
        +--------------------------------+
        |                                |
        ↓                                ↓

www.shuijingwanwq.com          media.shuijingwanwq.com

        |                                |
        ↓                                ↓

      EdgeOne                    Cloudflare

        |                                |
        ↓                                ↓

WordPress 主站资源              uploads 目录资源

(除 uploads 外)                (所有上传文件)

具体来说:

www.shuijingwanwq.com

通过 EdgeOne 加速:

  • WordPress 页面 HTML
  • CSS
  • JavaScript
  • 主题文件
  • 插件文件
  • WordPress 核心文件
  • 其他非 uploads 目录资源

media.shuijingwanwq.com

通过 Cloudflare 加速:

  • 图片
  • PDF
  • ZIP
  • 文档附件
  • 其他上传文件

这些资源原本位于:

Plaintext
/wp-content/uploads/

目录。


二、迁移后发现 Cloudflare Cache Rules 遗留问题

完成迁移后检查 Cloudflare 配置时发现:

原本针对 WordPress 主站设计的 Cache Rules 仍然存在。

图1:Cloudflare 原有 Cache Rules 配置
图1:Cloudflare 原有 Cache Rules 配置

这些规则包括:

  • WordPress 后台绕过缓存
  • WordPress 登录页绕过缓存
  • WordPress REST API 绕过缓存
  • HTML 页面缓存
  • CSS/JS 静态资源缓存
  • uploads 静态资源缓存

这些规则在以前是合理的。

因为当时:

Plaintext
www.shuijingwanwq.com



Cloudflare



整个 WordPress 网站

但是现在:

Plaintext
www.shuijingwanwq.com



EdgeOne

已经不经过 Cloudflare。

因此这些规则已经不符合当前架构。


三、原 uploads 缓存规则失效

之前 Cloudflare 的静态资源缓存规则:

匹配:

Plaintext
/wp-content/uploads/

表达式:

Plaintext
starts_with(http.request.uri.path, "/wp-content/uploads/")
图2:原 uploads 路径缓存规则
图2:原 uploads 路径缓存规则

但是现在访问路径已经变化。

以前:

Plaintext
www.shuijingwanwq.com/wp-content/uploads/2026/07/example.jpg

现在:

Plaintext
media.shuijingwanwq.com/2026/07/example.jpg

请求路径:

Plaintext
/2026/07/example.jpg

因此原规则已经无法匹配。


四、重新设计 Cloudflare Media CDN 缓存规则

由于 Cloudflare 当前只负责:

Plaintext
media.shuijingwanwq.com

因此新的规则不再根据路径判断。

直接根据 Host 匹配:

条件:

Plaintext
Hostname equals media.shuijingwanwq.com

表达式:

Plaintext
http.host eq "media.shuijingwanwq.com"
图3:新的 media 子域名缓存规则
图3:新的 media 子域名缓存规则

这样:

只有:

Plaintext
media.shuijingwanwq.com/*

会进入 Cloudflare 缓存。

不会影响:

Plaintext
www.shuijingwanwq.com

五、设置长期缓存策略

由于 uploads 中的文件具有以下特点:

  • 上传后基本不会修改
  • URL 包含日期路径
  • 新文件不会覆盖旧文件

例如:

Plaintext
media.shuijingwanwq.com/2026/07/example.jpg

以后:

Plaintext
media.shuijingwanwq.com/2026/08/new.jpg

属于新的资源。

因此适合长期缓存。


Edge TTL

设置:

Plaintext
忽略缓存控制标头,使用此 TTL

1 年

Browser TTL

设置:

Plaintext
1个月

图4:Cloudflare Edge TTL 配置、Cloudflare Browser TTL 配置
图4:Cloudflare Edge TTL 配置、Cloudflare Browser TTL 配置

这样:

  • Cloudflare 边缘节点长期保存资源
  • 浏览器不会永久保存旧资源

六、禁用旧 WordPress Cache Rules

由于 WordPress 主站已经由 EdgeOne 负责,因此 Cloudflare 中以下规则已经没有必要:

  • WordPress 后台绕过缓存
  • WordPress 登录页绕过缓存
  • WordPress REST API 绕过缓存
  • CSS/JS 静态资源缓存优化
  • HTML 页面缓存

这些规则没有删除,而是选择禁用。

原因:

  • 保留历史配置
  • 未来调整架构时可以快速恢复
  • 降低误操作风险
图5:禁用旧规则后的 Cloudflare Cache Rules
图5:禁用旧规则后的 Cloudflare Cache Rules

最终 Cloudflare 只保留:

Plaintext
media.shuijingwanwq.com



上传资源长期缓存

七、验证 Cloudflare 缓存效果

调整完成后,通过 curl 验证:

Bash
curl -I https://media.shuijingwanwq.com/2026/06/9-22-1024x480.png

返回:

Plaintext
server: cloudflare

cf-cache-status: HIT

图6:curl 验证 Cloudflare HIT
图6:curl 验证 Cloudflare HIT

说明:

静态资源请求已经进入 Cloudflare 缓存。

访问流程:

Plaintext
用户



Cloudflare Edge Cache



源站 uploads 文件

八、为什么迁移时容易遗漏 Cache Rules?

这次问题的原因是:

网站迁移并不是简单修改 DNS。

尤其是采用多 CDN 架构后,需要同时考虑:

Plaintext
DNS



域名规划



CDN 接入



源站配置



资源路径



缓存规则



安全策略

这次迁移关注了:

  • media 子域名创建
  • 上传目录迁移
  • CDN 接入
  • 访问验证

但是遗漏了:

  • Cloudflare 原有 Cache Rules

原因在于:

原来的 Cloudflare 是:

Plaintext
整个网站 CDN

现在 Cloudflare 是:

Plaintext
静态资源 CDN

职责发生变化后,缓存策略也必须同步调整。


九、最终 CDN 架构

最终架构如下:

Plaintext
WordPress 网站访问:

www.shuijingwanwq.com



EdgeOne



WordPress 主站资源

(除 uploads 外)


静态资源访问:

media.shuijingwanwq.com



Cloudflare



uploads 目录全部资源

最终职责:

域名CDN负责内容
www.shuijingwanwq.comEdgeOneWordPress 主站及非 uploads 资源
media.shuijingwanwq.comCloudflareuploads 目录图片、附件等静态资源

总结

这次调整并不是一次新的 CDN 迁移,而是对已有架构的一次完善。

上一篇文章解决:

如何将 WordPress uploads 目录拆分到独立 media 子域名。

本文解决:

拆分完成后,如何重新调整 Cloudflare Cache Rules,使其符合新的静态资源 CDN 架构。

对于长期维护的网站来说,CDN 优化不仅包括:

  • DNS
  • CNAME
  • CDN 节点

还包括:

  • 缓存规则
  • TTL 设置
  • 域名匹配范围
  • 资源职责划分

只有这些配置保持一致,混合 CDN 架构才能长期稳定运行。

WordPress 图片迁移到 media 子域名后,EdgeOne 仍然出现大量 301 的排查与处理记录

Linux 服务器运维、部署与线上故障排查

如果你的网站或后端服务部署在 Linux 服务器上,遇到访问异常、Nginx 配置问题、MySQL / Redis 异常、Docker 服务不可用、磁盘占满、CPU / 内存过高等问题,可以联系我做一次远程排查。

适合以下场景:
✅ 网站打不开或访问不稳定
✅ Nginx / PHP-FPM 配置异常
✅ MySQL / Redis 性能或连接问题
✅ Docker 服务部署与维护
✅ 服务器迁移与环境配置
✅ CPU / 内存 / 磁盘异常排查

服务内容:
✅ Linux 环境检查
✅ 网站部署与迁移
✅ Nginx / PHP-FPM / MySQL / Redis 排查
✅ Docker 配置与维护
✅ 服务器性能分析
✅ 长期远程运维支持

如需咨询,请联系我,并注明:Linux 运维咨询

联系方式:
Telegram:@shuijingwan
微信:13980074657
邮箱:shuijingwanwq@gmail.com

评论

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

这个站点使用 Akismet 来减少垃圾评论。了解你的评论数据如何被处理