信科网络 · 11 年只做 WordPress | 建站 / 主题 / 插件 / 商城 / 迁移 / 托管 | 累计服务 3000+ 企业 | 源码全交付
服务热线:13280692153 邮箱:web@wordpressx.com
工作日 08:30-18:0013280692153 免费诊断
首页/WordPress 教程/WordPress 接入 CDN:回源、缓存规则与常见故障
BLOG

WordPress 接入 CDN:回源、缓存规则与常见故障

分类 发布 2026-10-13

CDN 接上去第一天通常很顺,问题出现在第二天:后台样式全丢、表单提交报 403、日志里所有访客都变成了同一个 IP、支付回调验签失败。这些都不是 CDN 的锅,是回源和缓存规则没配对。下面按上线顺序讲,先解决回源,再谈缓存,最后处理真实 IP 和故障。

回源三件事:源站地址、回源 Host、回源协议

回源地址填源站 IP,不要填已经接了 CDN 的域名,否则 CDN 回源又走一遍 CDN,形成循环。如果源站 IP 会变(比如云服务器重建),就填一个不经过 CDN 的二级域名,例如 origin.example.com,这条解析保持直连。

回源 Host 必须填站点真实域名。这一项配错的典型表现是首页正常、内页全 404——CDN 拿 IP 回源,Nginx 按 Host 匹配站点,匹配不到就落到默认站点,返回的是另一个站的内容或者 404。排查时直接在源站上执行:

curl -I -H "Host: www.example.com" http://127.0.0.1/

能返回 200 说明源站没问题,问题在 CDN 的 Host 配置。回源协议选 HTTPS 时,源站证书必须是可信证书;用自签证书的话 CDN 会报 526 或者握手失败,这种情况要么换成正式证书,要么回源协议退回 HTTP(前提是回源链路在内网或可信网络)。

还有一件必做的事:源站防火墙放行 CDN 的回源 IP 段。很多 CDN 厂商把节点 IP 段公开在文档里,把它们加进白名单,同时把 80/443 对公网关掉。这既是安全,也是避免别人绕过 CDN 直接压源站。不放心的话可以只允许回源 IP 访问,其余全部 drop,配置思路和防火墙那篇一致。

回源端口容易被忽略。源站如果把 HTTP 改成了 8080、HTTPS 改成了 8443(宝塔改端口后很常见),CDN 那边还按 80/443 回源,结果就是全站 502。打开 CDN 的回源配置确认端口号,和源站 Nginx 的 listen 指令对一遍,通常是两分钟能查完的事。

只加速静态资源,还是整站加速

这是接入 CDN 时第一个要做的取舍,直接决定后面踩多少坑。

方案 做法 适合的站 代价
只加速静态资源 把图片、CSS、JS 的域名指向 CDN,HTML 仍走源站 后台重、插件多、表单和登录逻辑复杂的企业站与商城 HTML 首字节时间没改善,动态页仍然慢
整站加速 域名整体 CNAME 到 CDN,HTML 也缓存 内容站、资讯站、以文章为主的展示站 必须精确配置不缓存的路径和 cookie,配错就是登录串号
整站加速但不缓存 HTML 域名接 CDN,HTML 设 TTL 为 0,只吃链路优化 既要动静态分离又不想改主题的站 省了跨地域延迟,但回源压力没降

我的建议是先做第一种,跑一周看监控,确认没有异常再考虑整站。整站加速回滚成本高,一旦缓存规则出错,用户看到的是错乱页面,不是加载慢。静态资源方案的回滚只需要把 CNAME 改回去,几分钟的事。

缓存规则:HTML 短,图片长,接口不缓存

CDN 缓存的核心是按路径和文件类型设 TTL。原则很简单:内容会变的给短 TTL,内容不变的给长 TTL,带用户态的一律不缓存。

对象 建议 TTL 说明
首页、列表页、文章页 HTML 300 到 600 秒 发布新文章后最迟十分钟可见,配合主动刷新更快
图片、字体、视频封面 30 天 WordPress 上传的图片带日期目录,天然不会重名
CSS、JS 7 到 30 天 改版时必须改文件名或加版本号,否则用户拿到旧样式
/wp-admin/、/wp-login.php 不缓存 后台必须实时,缓存会导致保存失败、样式错乱
/wp-json/、/cart/、/checkout/ 不缓存 带用户态和鉴权,缓存会串数据

除了 TTL,还要加两条忽略规则:请求带 wordpress_logged_in_ cookie 时不缓存;响应带 Set-Cookie 时不缓存。这两条不做,登录用户和游客会互相看到对方的页面状态。

TTL 定完还要会用刷新。改了一篇文章的标题,主动提交这条 URL 的刷新,比等 TTL 过期快得多;改了整个站的模板,刷目录,不要一条条刷。刷新接口一般有配额,日常小改动用刷新,批量导入或主题改版前先把 TTL 临时调到 60 秒,改完再调回来。这样既不烧配额,也不会让用户看到半新半旧的页面。

CDN 后面怎么拿到真实 IP

接了 CDN 之后,REMOTE_ADDR 全是 CDN 节点的地址,WordPress 的评论拦截、登录限制、统计插件全部失效,防火墙也会误封整个 CDN 节点。真实 IP 在 X-Forwarded-For 里,但这一行可以被伪造,必须只在信任 CDN 的前提下读取。

Nginx 层用 realip 模块还原,配置写在 server 块外:

set_real_ip_from 10.0.0.0/8;
set_real_ip_from 203.0.113.0/24;
real_ip_header X-Forwarded-For;
real_ip_recursive on;

set_real_ip_from 要把 CDN 官方公布的回源段全部列进去,不能图省事写 0.0.0.0/0,那等于允许任何人伪造 IP。配好之后 $remote_addr 就是访客真实 IP,PHP 里读到的 REMOTE_ADDR 也跟着变,WordPress 不用改代码。

如果 CDN 用的是 X-Real-IP 或者厂商自定义的头(比如有的用 Ali-CDN-Real-IP),把 real_ip_header 换成对应的头名即可。改完用 curl -H "X-Forwarded-For: 1.2.3.4" 从外部测一下,能伪造成功说明白名单配大了。

后台样式错乱与混合内容

后台白屏、按钮没图标、编辑器加载不出来,八成是 CDN 把 /wp-admin/ 的 CSS 和 JS 也缓存了,或者 CDN 对这些文件做了压缩、合并、图片转换之类的优化。处理办法只有一条:后台路径直接不经过 CDN。在 CDN 里给 /wp-admin/*、/wp-includes/*、/wp-login.php 设 bypass,或者干脆让后台走一个不接 CDN 的子域名。

混合内容是另一类问题:站点已经是 HTTPS,但 CDN 回源走 HTTP,页面里被 CDN 改写出了 http:// 的资源地址,浏览器控制台报 Mixed Content: The page at 'https://...' was loaded over HTTPS, but requested an insecure stylesheet。定位方法是打开控制台看报错文件,或者用 curl 抓页面搜 http://。这类问题的根因通常在源站配置,和SSL 配置里讲的处理路径一样:先把源站的站点地址和资源地址统一成 https,再让 CDN 全链路走 HTTPS。

常见故障对照

现象 最可能的原因 处理
521 / 522 错误 源站拒绝 CDN 回源,或回源超时 放行回源 IP 段,检查源站负载与 443 端口
首页正常,内页 404 回源 Host 没填域名 把回源 Host 改成站点域名
更新文章后前台不变 HTML 被缓存且未主动刷新 提交 URL 刷新,或把 HTML 的 TTL 调到 300 秒
后台登录后又跳回登录页 /wp-admin/ 和登录 cookie 被缓存 后台路径设 bypass,关闭对 Set-Cookie 响应的缓存
所有访客 IP 相同 未还原真实 IP Nginx 配 realip,或装对应的还原插件

上线节奏建议按这个顺序:先只接静态资源、TTL 给保守值、观察三天错误日志;再把 HTML 接进来,先给 300 秒;稳定一周后再逐步拉长。全站切换的当天把源站 IP 留在手上,出问题立刻改 DNS 回滚,同时提前一天把 DNS 的 TTL 调到 300 秒,否则回滚本身要等几个小时才生效。CDN 加速和速度优化是两件事,CDN 解决的是距离,本地该做的合并压缩、图片尺寸、数据库清理一样不能少,否则 CDN 只是把一个慢页面更快地送到用户面前。

INDUSTRIAL BELT

扎根中国制造产业带
懂工厂,才懂出海

从胶东半岛到珠三角,从长三角到中原腹地,每一片产业集群都有自己的出口节奏与买家画像。信科网络长期扎根产业一线,把工厂的产品语言翻译成海外采购商听得懂的搜索语言,让每一分投入都对着真实的询盘去。

jizhou

冀州外贸网站建设

冀州市隶属河北省衡水市,地处华北平原腹地,北距首都300公里,西距省会石家庄110公里,辖区总面积918平方公里,东与枣强县(衡水)为邻,南与南宫市、新河县(邢台)接壤,西与宁晋县(邢台)…

zaoqiang

枣强外贸网站建设

枣强县位于河北省东南部,衡水市南端,界于东经115°35′~58′,北纬37°08′~35′之间,总面积892.3平方公里。东隔清凉江与景县、故城相望,西临冀州市,南靠邢台地区南宫市,北接桃城区、武邑县。…

fengjie

奉节外贸建站

奉节县位于重庆市东部,地处四川盆地东端,地理坐标为东经109°1′17″—109°45′58″,北纬30°29′19″—31°22′33″。县境东邻巫山县,南界湖北省恩施土家族苗族自治州,西连云阳县,北接巫溪县。境内有…

xionganxinqu

雄安新区外贸建站

雄安新区(Xiongan New Area)位于中国河北省保定市境内,地处北京、天津、保定腹地,规划范围涵盖河北省雄县、容城、安新等3个小县及周边部分区域,对雄县、容城、安新3县及周边区域实行托管2…

xiongxian

雄县WordPress建站

河北省保定市雄县位于东经116°06',北纬38°59'。平均海拔10米。处于冀中平原的京、津、保三角腹地,南倚“华北明珠”白洋淀,北靠“京南小香港”___白…

xinhua

新华WordPress建站

新华区隶属于河北省沧州市,地处沧州市区东半部,与运河区以清池大道为界,行政区域总面积88.5平方千米。新华区属暖温带半湿润大陆性季风气候,四季分明,日照充足。截至2014年,新华区下辖5个…

dianjiang

垫江Shopify建站

垫江,地处重庆市中部,“上接巴渝之雄,下引蘷巫之胜”,占据渝北咽喉,区位优势突出。幅员面积1518平方公里,总人口85万人。历史悠久,文化昌达。自西魏恭帝2年(公元555年)置县至今1400多年…

fuling

涪陵Shopify建站

重庆市涪陵区,邑枕长、乌两江,素为乌江流域物资集散地,有渝东南门户之称,是闻名遐迩的中国“榨菜之乡”。全区幅员面积2946平方公里,辖1个经济技术开发区、1个私营经济示范区和44个乡镇、街…

youyang

酉阳外贸推广

酉阳土家族苗族自治县地处渝东南边陲的武陵山区,渝、鄂、湘、黔四省(市)在此接壤,是渝东南重要门户。全县面积5173平方公里,是重庆市面积最大的县,辖39个乡镇,人口73万,其中土家族44.5…

yanchi

盐池外贸推广

山西省运城市即古河东盐池,亦称解池。地处运城盆地之南,中条山北麓,自东北向西南延伸,长约30公里,宽3——5公里,面积130平方公里,是由鸭子池、盐池、硝池等几个部分组成,湖面海拔324.5米…

jiulongpo

九龙坡Google SEO

九龙坡区是重庆主城区,重庆大都市区之一,地处重庆市西南部,是长江和嘉陵江环抱的重庆渝中半岛的重要组成部分。九龙坡区与渝中区、沙坪坝区、大渡口区、璧山区、江津区接壤,与南岸区、巴南…

dadukou

大渡口Google SEO

大渡口区是重庆主城区,重庆大都市区之一,地处重庆市西南部,是重庆都市圈重要组成部分,也是重庆市中心城区十二个组团之一,于1965年建区。大渡口区东临巴南区,南界江津区,西、北靠九龙坡…

nanchuan

南川GEO优化

南川地处四川盆地东南边缘与云贵高原过渡地带,位于重庆市南部,东南与贵州省道真、正安、桐梓县接壤,东北与武隆县为邻,北接涪陵区,西连巴南区、綦江县、万盛区。总面积2602平方千米。总人…

haiyuan

海原谷歌SEM

位于中国宁夏回族自治区中南部。1991年底人口31.15万。回族为主,有汉、满、蒙古、东乡等民族。西汉属安定郡。清同治十三年(1874)设海城县。民国三年(1914)改海原县。地形复杂,多山地。年…

wushan

巫山谷歌SEM

巫山位于重庆市东北部,三峡库区腹心,素有“渝东门户”之称,地跨长江巫峡两岸。东邻湖北省巴东县,西接奉节县,南与湖北省建始县毗连,北与巫溪县及神农架林区接壤。县城位于大宁河与长江交汇…

hengshui

衡水Facebook广告

衡水市位于河北省东南部,东与沧州市和山东省德州市毗邻,西与石家庄市接壤,南与邢台市相连,北与保定市交界;南北长125.5公里,东西宽98.13公里,全市辖8县2市1区,总面积5815.4平方公里。衡…

jiangbei

江北Facebook广告

江北区,隶属于重庆市,是主城核心区之一。位于长江、嘉陵江交汇处北岸,东南西三面分别与巴南、南岸、渝中、沙坪坝四区隔江相望,北与渝北区接壤。至2015年底,江北区幅员面积为220.77平方千…

tongnan

潼南Yandex推广

潼南县位于重庆市西北部最前沿。是川渝握手区腹地东西南北交通自然便捷走向的交汇点及区域几何中心,是成渝经济区的腹地中心,是重庆西部凸入川中腹地最远、毗邻四川县市最多的对外开放最前沿…

yinchuan

银川Yandex推广

银川市地处祖国西北边陲,是宁夏回族自治区首府,也是全国历史文化名城之一。银川市是一个多民族聚居区,共有汉、回、满、蒙、朝鲜等26个民族。银川市位于东经105°51’,北纬38°25’。东临黄河,…

jingxian

景县TikTok推广

景县位于河北省东南部,大运河西岸,全县辖9镇7乡,849个行政村,总面积1183平方公里。全县呈簸箕形,由西南向东北逐渐倾斜坦,最高点海拔25米,最低点14.1米。属暖温带半湿润大陆性气候,四季…

为什么一定要选懂产业带的出海服务商?建材丝网的欧洲建筑商看资质与交期,工业橡塑的中东工程商问耐温与工况,毛皮服饰的俄罗斯分销商算的是季节与毛利。买家不同,决策逻辑就不同;信科网络把这些差异拆进网站结构、关键词地图和投放策略里,用他们习惯的方式出现在他们搜索的地方。