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

系列: WordPress CDN 与全球加速实战

  • 本文记录了 WordPress 中文站与英文站的 CDN 缓存命中率优化过程。通过分析 EdgeOne 与 Cloudflare 的请求状态、响应流量、HTTP 状态码和资源类型,确认大量 MISS 主要来自 WordPress HTML 长尾页面,而原有 1~4 小时的缓存时间偏短。将两边的 HTML 边缘缓存 TTL 统一调整为 12 小时,并补全个性化 Cookie 绕过规则后,Cloudflare Cache Hit Rate 从 16.76% 提升至 20.25%,EdgeOne 请求 Hit 从约 50.5% 提升至 58.5%,流量 Hit 从约 26.6% 提升至 35.6%,验证了统一延长缓存时间的实际效果。

  • 本文记录一次 WordPress 双 CDN 架构下的 Query String 缓存优化实战。中文站通过 EdgeOne 自定义 Cache Key 与回源请求参数设置,让 canonical 文章 URL 的不同查询参数共用缓存,并在 MISS 回源时删除 Query String;英文站则通过 Cloudflare URL Rewrite Rule 实现相同目标。整个过程结合 HIT/MISS、Age、301、CF-Ray 与 Nginx access log 进行实际验证,最终将规则收敛为仅优化 /YYYY/MM/DD/ID/ 形式的标准文章 URL,在降低随机参数缓存穿透风险的同时保持 CDN 配置简单、清晰、易维护。

  • 2026 年 7 月 28 日,英文站 en.shuijingwanwq.com 持续出现 Cloudflare 526 Invalid SSL certificate。排查发现,服务器同时保留了 RSA 与 ECC 两套 www.shuijingwanwq.com 的 acme.sh 证书记录:RSA 证书仅包含主域名和根域名,ECC 证书则额外包含英文子域 en.shuijingwanwq.com,但两套证书却共同写入同一组 Nginx 生产证书文件。当天凌晨旧 RSA 证书自动续期后覆盖了 ECC 证书,导致英文子域不再包含在 SAN 中,最终触发 Cloudflare Full (strict) 验证失败。通过恢复 ECC 三域名证书、移除旧 RSA 自动续期记录,并完成源站与 Cloudflare 公网验证后,英文站恢复 200,证书自动续期冲突也得到永久修复。

  • 在将 W3 Total Cache、EdgeOne 与 Cloudflare 的主要 HTML 缓存统一延长到 4 天后,我发现新文章发布后,首页和 Sitemap 可能继续命中 CDN 中的旧缓存。本文记录如何在保留普通页面 4 天长缓存的同时,仅将中英文首页和公开 Yoast Sitemap 的 Edge TTL 缩短到 2 小时,并分别通过 EdgeOne 与 Cloudflare 实测缓存过期、重新回源和 HIT 行为。最终在内容新鲜度、缓存命中率和维护成本之间取得更合适的平衡。

  • 2026 年 7 月 30 日,网站在两个多小时内出现约 177 万次 EdgeOne L7 请求,其中约 109 万次实际回源。结合 EdgeOne 指标与 Nginx 日志,最终确认这是一轮大规模 PHP、ASP 与 WebShell 文件路径扫描。排查还发现,网站接入 EdgeOne 和 Cloudflare 后,原有 Nginx 限流实际按 CDN 回源节点 IP 计数,存在误伤正常请求的风险,因此暂时注释源站限流配置,并完成中英文站点验证。

  • 本文记录一次 WordPress 中文站 EdgeOne 524 故障的排查与优化过程。故障期间,大量带有 amp、nonamp、query-62-page 等查询参数的文章和列表页出现缓存 MISS,导致 1 核 ECS 上的 PHP-FPM 进程被占满。为减少缓存碎片和重复回源,本文将原有文章详情页的 Query String 归一化方案扩展至首页、分类、标签、系列和日期归档等公开列表页,并分别在 EdgeOne 与 Cloudflare 中配置缓存 Key 忽略、回源去参和 URL 重写。同时保留 WordPress 搜索参数 s,通过 MISS → HIT、缓存 Age 及 Nginx 源站日志验证规则已经生效。

  • 此前在测试 WordPress 的 EdgeOne 与 Cloudflare Query String 缓存归一化时,由于没有找到真实存在的日期归档分页,/YYYY/MM/DD/page/N/ 场景一直没有完成验证。随着 2026 年 8 月 15 日日期归档出现第 3 页,这次重新补测中文站与英文站。EdgeOne 中随机 Query String 直接命中已有缓存且正文完全一致;Cloudflare 中虽然原始 HTML SHA-256 每次不同,但最终确认差异仅来自 /cdn-cgi/l/email-protection 邮箱地址混淆。归一化该动态字段后,Clean 与 Dirty 四份 HTML 完全一致,最终确认两个 CDN 的日期归档分页 Query String 归一化均工作正常。

  • 在排查 GA4 首页浏览次数异常偏高、用户互动时长过短的问题时,我从百度搜索结果发现大量 ?p=ID 形式的 WordPress 历史入口被 CDN 错误处理。进一步测试确认,EdgeOne 的 Query String 归一化规则会过滤 p 参数,使文章请求回源成首页并返回 200。修复 p、page_id 保护后,有效文章恢复 301,无效地址恢复 404;GA4 数据显示,过去 30 天 ?p= 相关访问高达 2479 次。

👨‍💻 个人品牌

王世强|技术实践者 · 独立博客作者

15+ 年 Web 与系统实践经验,持续关注网站基础设施、系统优化、AI 工具与自动化。

持续运营技术博客 10+ 年,累计发布 1000+ 篇原创技术文章。

长期建设个人项目,也欢迎合适的技术交流、咨询与合作。

👉 关于我

.env (14) add (16) AI 翻译 (33) Apache (13) Array (19) A Tour of Go (75) Cache (13) CentOS (23) ChatGPT (27) ChatGPT Plus (17) chrome (19) Cloudflare (38) Codex (26) composer (42) composer.json (22) composer install (13) composer update (14) console (16) Container (25) curl (16) delete (31) Docker (32) Dockerfile (15) EdgeOne (34) environment variable (19) error (24) file (15) filter (20) Git (28) GitHub (23) Gitlab (15) GLM-5.2 (27) Go (65) go-tour-i18n (16) Google AdSense (30) Go 语言 (24) GraphQL (24) GraphQL API (14) Gutenberg (36) http (21) https (22) Interface (19) Jquery (13) json (24) Laravel (37) Laravel 6 (55) Laravel 9 (25) Lighthouse (17) Lighthouse 5 (14) Linux (22) Migrate (13) Module (17) MySQL (78) MySQL 5.7 (22) Nginx (63) normalize.css (28) OKX (15) OneinStack (21) PHP (67) php-fpm (19) php.ini (24) PHP 7.1.12 (22) PHP 7.4 (26) phpmyadmin (15) PhpStorm (24) Polylang (58) postman (18) Query (17) queue (16) Rancher (24) Redis (51) RESTful (27) RESTful API (23) Shopify (19) SlyTranslate (21) SQL (24) String (14) TortoiseGit (14) Twenty Twenty-Five (20) Ubuntu (42) update (20) VPN (17) W3 Total Cache (40) Windows 10 (46) WireGuard (28) WordPress (135) WPCode (23) Wstunnel (15) Yii (40) Yii 2 (70) Yii 2.0 (51) 国际化 (14) 多语言翻译 (38) 开源项目 (14) 技术博客 (15) 故障排查 (17) 数据库迁移 (16) 浏览器 (14) 阿里云 (20) 页面缓存 (14)

2026 年 9 月
一 二 三 四 五 六 日
 123456
78910111213
14151617181920
21222324252627
282930