在上一篇文章中,我记录了将 WordPress 上传资源迁移到独立 media.shuijingwanwq.com 子域名,并通过 Cloudflare 接管静态资源访问的过程。
上一篇文章:
这次调整是在迁移完成后的进一步优化。
迁移过程中,网站 CDN 架构发生了变化,但是 Cloudflare 中原有的 Cache Rules 并没有同步调整。
因此需要重新整理 Cloudflare 缓存策略,让它符合新的 CDN 架构。
一、当前 WordPress CDN 架构
之前:
整个 WordPress 网站
|
↓
Cloudflare
Cloudflare 负责:
- HTML 页面
- CSS
- JS
- 图片
- 上传附件
因此 Cache Rules 中包含大量 WordPress 相关规则。
迁移之后,现在采用资源拆分方式:
用户访问网站
|
|
+--------------------------------+
| |
↓ ↓
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 加速:
- 图片
- ZIP
- 文档附件
- 其他上传文件
这些资源原本位于:
/wp-content/uploads/
目录。
二、迁移后发现 Cloudflare Cache Rules 遗留问题
完成迁移后检查 Cloudflare 配置时发现:
原本针对 WordPress 主站设计的 Cache Rules 仍然存在。

这些规则包括:
- WordPress 后台绕过缓存
- WordPress 登录页绕过缓存
- WordPress REST API 绕过缓存
- HTML 页面缓存
- CSS/JS 静态资源缓存
- uploads 静态资源缓存
这些规则在以前是合理的。
因为当时:
www.shuijingwanwq.com
↓
Cloudflare
↓
整个 WordPress 网站
但是现在:
www.shuijingwanwq.com
↓
EdgeOne
已经不经过 Cloudflare。
因此这些规则已经不符合当前架构。
三、原 uploads 缓存规则失效
之前 Cloudflare 的静态资源缓存规则:
匹配:
/wp-content/uploads/
表达式:
starts_with(http.request.uri.path, "/wp-content/uploads/")

但是现在访问路径已经变化。
以前:
www.shuijingwanwq.com/wp-content/uploads/2026/07/example.jpg
现在:
media.shuijingwanwq.com/2026/07/example.jpg
请求路径:
/2026/07/example.jpg
因此原规则已经无法匹配。
四、重新设计 Cloudflare Media CDN 缓存规则
由于 Cloudflare 当前只负责:
media.shuijingwanwq.com
因此新的规则不再根据路径判断。
直接根据 Host 匹配:
条件:
Hostname equals media.shuijingwanwq.com
表达式:
http.host eq "media.shuijingwanwq.com"

这样:
只有:
media.shuijingwanwq.com/*
会进入 Cloudflare 缓存。
不会影响:
www.shuijingwanwq.com
五、设置长期缓存策略
由于 uploads 中的文件具有以下特点:
- 上传后基本不会修改
- URL 包含日期路径
- 新文件不会覆盖旧文件
例如:
media.shuijingwanwq.com/2026/07/example.jpg
以后:
media.shuijingwanwq.com/2026/08/new.jpg
属于新的资源。
因此适合长期缓存。
Edge TTL
设置:
忽略缓存控制标头,使用此 TTL
1 年
Browser TTL
设置:
1个月

这样:
- Cloudflare 边缘节点长期保存资源
- 浏览器不会永久保存旧资源
六、禁用旧 WordPress Cache Rules
由于 WordPress 主站已经由 EdgeOne 负责,因此 Cloudflare 中以下规则已经没有必要:
- WordPress 后台绕过缓存
- WordPress 登录页绕过缓存
- WordPress REST API 绕过缓存
- CSS/JS 静态资源缓存优化
- HTML 页面缓存
这些规则没有删除,而是选择禁用。
原因:
- 保留历史配置
- 未来调整架构时可以快速恢复
- 降低误操作风险

最终 Cloudflare 只保留:
media.shuijingwanwq.com
↓
上传资源长期缓存
七、验证 Cloudflare 缓存效果
调整完成后,通过 curl 验证:
curl -I https://media.shuijingwanwq.com/2026/06/9-22-1024x480.png
返回:
server: cloudflare
cf-cache-status: HIT

说明:
静态资源请求已经进入 Cloudflare 缓存。
访问流程:
用户
↓
Cloudflare Edge Cache
↓
源站 uploads 文件
八、为什么迁移时容易遗漏 Cache Rules?
这次问题的原因是:
网站迁移并不是简单修改 DNS。
尤其是采用多 CDN 架构后,需要同时考虑:
DNS
↓
域名规划
↓
CDN 接入
↓
源站配置
↓
资源路径
↓
缓存规则
↓
安全策略
这次迁移关注了:
- media 子域名创建
- 上传目录迁移
- CDN 接入
- 访问验证
但是遗漏了:
- Cloudflare 原有 Cache Rules
原因在于:
原来的 Cloudflare 是:
整个网站 CDN
现在 Cloudflare 是:
静态资源 CDN
职责发生变化后,缓存策略也必须同步调整。
九、最终 CDN 架构
最终架构如下:
WordPress 网站访问:
www.shuijingwanwq.com
↓
EdgeOne
↓
WordPress 主站资源
(除 uploads 外)
静态资源访问:
media.shuijingwanwq.com
↓
Cloudflare
↓
uploads 目录全部资源
最终职责:
| 域名 | CDN | 负责内容 |
|---|---|---|
| www.shuijingwanwq.com | EdgeOne | WordPress 主站及非 uploads 资源 |
| media.shuijingwanwq.com | Cloudflare | uploads 目录图片、附件等静态资源 |
总结
这次调整并不是一次新的 CDN 迁移,而是对已有架构的一次完善。
上一篇文章解决:
如何将 WordPress uploads 目录拆分到独立 media 子域名。
本文解决:
拆分完成后,如何重新调整 Cloudflare Cache Rules,使其符合新的静态资源 CDN 架构。
对于长期维护的网站来说,CDN 优化不仅包括:
- DNS
- CNAME
- CDN 节点
还包括:
- 缓存规则
- TTL 设置
- 域名匹配范围
- 资源职责划分
只有这些配置保持一致,混合 CDN 架构才能长期稳定运行。
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


发表回复