CDN 加速配置
配好回源,再谈缓存
外贸站最大的速度问题不在服务器配置,在物理距离——山东机房到德国客户之间隔着十几个路由节点,一个页面两百多个请求,每个多两百毫秒就是四五秒。CDN 能把静态资源搬到离客户最近的节点,但回源与缓存规则配错,轻则样式错乱、重则后台被缓存住改不了内容。
CDN 只解决一半问题
另一半得靠缓存插件
CDN 加速的是可缓存的静态资源与网络传输距离,它不会让 PHP 跑得更快,也不会让数据库查询变少。搞清这点能省下不少钱。
受益的:图片、CSS、JS
这类资源体积大、不变、可长期缓存,是主要收益来源。一个产品页三十张图,从本地机房直出和从客户所在城市的边缘节点出,首屏差距通常在两秒以上。
- jpg、png、webp、svg、woff2 全部走边缘
- 带版本号的 css/js 可以设长缓存
半受益的:HTML 页面
静态化后的 HTML 可以缓存,命中时几乎等同静态站,提升最大。但企业站常有询盘表单、购物车与登录态,缓存策略要按路径与 Cookie 细分,配错会出现”看到别人的购物车”。
不受益的:动态请求
wp-admin、admin-ajax.php、wp-cron.php、表单提交、搜索、加购物车,必须回源。CDN 对它们唯一的价值是缩短回源链路,剩下的靠对象缓存与页面缓存。
对出口企业来说,选节点比选价格重要。客户在德国就该有法兰克福或阿姆斯特丹节点,在墨西哥则要覆盖洛杉矶与圣保罗。只看”全球节点数量”没意义。
回源配置
四个参数错一个就 502
回源是 CDN 拿不到缓存时回服务器取内容的过程。这一步是所有问题的起点,配错了后面的缓存全是空谈。
源站地址与端口
填服务器公网 IP,或一个不对外解析的二级域名。推荐后者:先用 origin.example.com 指向源站,再把它设为回源地址,将来换服务器只改一条解析。端口按实际填 443 或 80。
回源 Host 头
最容易配错的一项。回源 Host 必须填站点主域名(如 www.example.com),不是源站 IP。填错时虚拟主机匹配不到站点,会返回默认站点或 404,现象是”CDN 配好了,打开却是空白或别的网站”。
回源协议
源站已上 HTTPS 的,回源协议必须选 HTTPS 或”协议跟随”。还留在 HTTP 而源站强制 301,CDN 会跟着跳,轻则多一次往返,重则形成循环,浏览器报 ERR_TOO_MANY_REDIRECTS。相关配置见SSL 证书与 HTTPS 配置。
源站保护
开了 CDN 不等于隐藏源站。查历史 DNS 记录、看邮件头、扫全网 IP 都能找到。正确做法是防火墙上只放行 CDN 服务商公布的回源 IP 段,其余 80/443 全部拒绝,IP 段要定期同步。
超时与多源
回源超时默认常见 30 秒,对动态页面偏长,建议连接 5 秒、读取 15 秒,且不要无限重试,否则源站慢时容易雪崩。主备回源要求两边文件与数据库同步,否则切过去是旧站。
缓存规则怎么排
先排除,再缓存
规则的书写顺序决定结果:先写例外(不缓存的),再写默认(可缓存的)。顺序反过来,后面的例外会被前面的通配符吃掉。
第一层:强制不缓存
/wp-admin/*、/wp-login.php、/wp-json/*、*/wp-admin/admin-ajax.php、/cart/*、/checkout/*、/my-account/*。这些路径只要被缓存一次,后果就是后台打不开或订单串号。
第二层:按 Cookie 绕过
请求头里带 wordpress_logged_in_、woocommerce_cart_hash、wp_woocommerce_session_ 的一律回源。这是商城与会员站的生命线,漏了会出现”编辑看到缓存页、改不动内容”。
第三层:静态资源长缓存
按后缀匹配 jpg jpeg png webp svg gif ico css js woff woff2 mp4,缓存 30 天以上。前提是文件名带版本号或哈希,否则改图后客户看到的还是旧图。
第四层:HTML 短缓存
页面缓存 10 分钟到 1 小时,配合”回源时校验”。设成一天看似命中率更高,但内容一改就要等一天。企业站访客量不大,短 TTL 加主动刷新更实际。
还有一个参数必须处理:查询字符串。?utm_source=、?fbclid=、?gclid= 会让同一页面产生几十个缓存副本,命中率被稀释。把这几个前缀设为”忽略”、不参与缓存键;?page=、?s=、?p= 必须参与,否则分页会串。
刷新与预热
全站 purge 是最后手段
内容更新后要让人看到新版本,靠的是精准刷新,不是一键清空。全站刷新会让所有缓存瞬间失效,流量在几分钟内全部压回源站,小服务器很容易被打到 502。
按 URL 精准刷新
改了一个产品页,就刷这个页面的 URL 加它的列表页与首页。多数 CDN 支持用 API 提交刷新任务,WordPress 侧可以用插件在文章保存时自动调用,编辑发稿就不必找技术同事。
按目录或标签刷新
换了整批产品图,可以按 /wp-content/uploads/2026/11/ 这个前缀刷;改了主题样式按 /wp-content/themes/ 刷。比全站刷新精准,比逐条 URL 省事。
预热要克制
预热是主动让 CDN 去源站拉一遍内容。刚刷完就全站预热,等于把整站请求瞬间打到源站。只预热首页、主要栏目页和 Top 20 产品页即可。
分层刷新
站内同时有页面缓存插件和 CDN 时,两层都要刷,顺序是先应用层再边缘层。只刷 CDN 的话,回源拿到的还是插件缓存的旧页面,看起来”刷了没用”。
接了 CDN 之后的怪现象
每个都有明确原因
这些问题在切换 CDN 后的一周内集中出现,多数不是 CDN 故障,而是规则与 WordPress 的运行方式打架。
后台样式全丢
表现是进 wp-admin 后一片无样式文字。原因通常是 CDN 缓存了旧 CSS 的哈希地址,或把后台 CSS 当公共资源缓存了。把后台路径排除出缓存,再刷一次主题目录。
表单提交 403
CDN 的 WAF 把 POST /wp-admin/admin-ajax.php 判为可疑请求。表现为点提交没反应、控制台 403。把该路径加白,或关掉针对它的规则集,关之前确认站点本身有防刷。
评论和询盘 IP 全是节点地址
访客 IP 全变成 CDN 节点地址,风控失效、日志没法分析。原因是 WordPress 只读 REMOTE_ADDR。要在 Nginx 用 real_ip_header X-Forwarded-For 配合 set_real_ip_from 信任 CDN 段,或由插件读真实 IP。
改了内容前台不变
三层缓存任意一层没清都会这样。排查顺序:浏览器强刷、应用层缓存、CDN 边缘缓存,最后看回源是不是打到了另一台服务器。逐层排除比反复点刷新有效。
ERR_TOO_MANY_REDIRECTS 与 502
前者是源站强制跳 HTTPS、CDN 回源又走 HTTP,两边互相推,把回源协议改成与源站一致即可。后者是静态资源命中缓存、动态回源超时,先看源站 PHP 进程数,再调超时。
资源类型与缓存策略
照着填就行
TTL 是建议起点,实际按内容更新频率调整。带”绕过”标记的路径一旦被缓存,故障排查成本极高。
| 资源类型 | 路径示例 | 建议 TTL | 是否绕过 | 备注 |
|---|---|---|---|---|
| 图片 | /wp-content/uploads/ | 30 天 | 否 | 文件名唯一,可长缓存 |
| 样式与脚本 | /wp-content/themes/、/plugins/ | 7 至 30 天 | 否 | 改版后需按目录刷新 |
| 字体 | .woff2 | 30 天 | 否 | 注意跨域头配置 |
| HTML 页面 | /、/products/ | 10 至 60 分钟 | 否 | 登录态必须绕过 |
| 后台 | /wp-admin/ | 不缓存 | 是 | 包括 admin-ajax.php |
| 登录与接口 | /wp-login.php、/wp-json/ | 不缓存 | 是 | 涉及鉴权与写入 |
| 商城流程 | /cart/、/checkout/ | 不缓存 | 是 | 串号事故高发区 |
| 站点地图 | /sitemap_index.xml | 1 小时 | 否 | 更新后手动刷一次 |
配置完成后做一轮验证:curl -I 看响应头里的命中标识,用不同地区节点测首字节时间,再用未登录与登录两种状态各访问一遍,确认内容不一样。这套检查十分钟能做完。CDN 之外还有哪些提速手段,见WordPress 速度优化。
CDN 配置常见五问
看客户在哪。客户与服务器都在省内,CDN 收益有限,先把图片压缩与页面缓存做好更划算;客户在欧洲、南美、中东,CDN 几乎是必需品。判断标准是实测各地首字节时间,不是听别人说。
不会。源站 IP 可以通过历史 DNS 记录、证书透明度日志、邮件头被查到。真正的保护是在防火墙层只放行 CDN 回源 IP 段,让直连请求进不来。不做这步,CDN 只是多了一层转发。
通常要,两者作用层不同。页面缓存让源站 PHP 不用每次执行,CDN 让请求不用跨洋回源。只开一层,另一层的开销依然存在。代价是刷新时要刷两层,得把流程写进规范。
用户到边缘节点这一段会直接报证书错误,整站打不开,比源站证书过期影响更大,因为它是第一跳。多数服务商提供托管证书并自动续期,开通后要确认续期状态。自传证书的必须留日历提醒。
三个检查:响应头里的命中标识(如 x-cache: HIT 一类)、curl -I 返回的 Server 头是否变了、从不同地区测同一张图的加载时间。三项都对上才算生效。缓存插件怎么选见WordPress 缓存加速插件。
海外客户打开慢,或刚接 CDN 出了一堆问题
先看回源与规则,再谈换服务商
发我们域名、目标市场与当前 CDN 配置截图,可以先做一轮链路实测:各地首字节时间、缓存命中率、回源是否正常、规则有没有漏掉后台路径。多数”CDN 不好用”的情况,调规则就能解决。相关阅读:WordPress 速度优化、SSL 证书与 HTTPS 配置、防火墙与 WAF 配置。
电话/微信 13280692153 邮箱 web@wordpressx.com 地址 山东省淄博市张店区电子产业创新园 B 座