EdgeOne 静态域名 → 回源 WordPress 技术文档
1. 文档说明
本文档用于指导将 WordPress 网站中的静态资源通过腾讯云 EdgeOne 静态加速域名进行访问,实现:
用户浏览器 → EdgeOne 静态加速域名 → WordPress 源站
适用场景包括:
- WordPress 主题 CSS、JS、字体、图片访问较慢;
- 服务器带宽较小;
- 想使用独立静态资源域名;
- 不希望将文件迁移到 OSS/COS;
- 希望通过 CDN 缓存降低源站压力;
- 需要为 Argon 等 WordPress 主题静态文件加速。
2. 需求背景
2.1 当前问题
传统 WordPress 网站中,主题文件、插件文件、上传图片等静态资源通常直接由 WordPress 源站服务器提供。
例如:
https://www.example.com/wp-content/themes/argon/style.css
https://www.example.com/wp-content/themes/argon/assets/js/app.js
https://www.example.com/wp-content/themes/argon/assets/fonts/icon.woff2
当用户访问网站时,浏览器需要从 WordPress 源站加载这些资源。
如果源站存在以下情况:
- 服务器带宽较小;
- 源站距离用户较远;
- 静态资源较多;
- 并发访问较高;
- 海外服务器在国内访问慢;
- 静态资源未缓存;
- CSS、JS、字体加载延迟较高;
就可能导致网站打开速度变慢。
2.2 解决思路
使用腾讯云 EdgeOne 创建一个静态资源加速域名,例如:
https://static.example.com
然后让该域名回源到 WordPress 主站:
https://www.example.com
最终资源访问方式从:
https://www.example.com/wp-content/themes/argon/style.css
变为:
https://static.example.com/wp-content/themes/argon/style.css
EdgeOne 会在边缘节点缓存该资源。
2.3 整体访问链路
用户浏览器
↓
static.example.com
↓
EdgeOne 边缘节点
↓ 缓存未命中时回源
WordPress 源站 www.example.com
缓存命中时:
用户浏览器 → EdgeOne 边缘节点 → 返回静态资源
缓存未命中时:
用户浏览器 → EdgeOne 边缘节点 → WordPress 源站 → EdgeOne 缓存 → 用户浏览器
3. 方案目标
本方案目标如下:
- 使用独立静态资源域名访问 WordPress 主题文件;
- 通过 EdgeOne 缓存 CSS、JS、图片、字体等静态文件;
- 降低 WordPress 源站静态资源访问压力;
- 提升用户访问速度;
- 保持文件仍在 WordPress 源站,无需迁移到 OSS/COS;
- 支持 HTTPS;
- 解决字体等资源跨域问题;
- 便于后续缓存刷新和维护。
4. 适用范围
4.1 适合的资源类型
适合通过该方案加速的资源包括:
.css
.js
.png
.jpg
.jpeg
.webp
.gif
.svg
.ico
.woff
.woff2
.ttf
.eot
.map
典型 WordPress 路径:
/wp-content/themes/
/wp-content/plugins/
/wp-content/uploads/
针对你的 Argon 主题,重点路径为:
/wp-content/themes/argon/
4.2 不建议缓存的路径
以下路径通常不建议通过静态域名缓存:
/wp-admin/
/wp-login.php
/wp-json/
/xmlrpc.php
/wp-cron.php
/?s=
/cart/
/checkout/
/my-account/
如果只是加速主题文件,一般只配置:
/wp-content/themes/argon/*
即可。
5. 必备资源
实施该方案前需要准备以下资源。
5.1 WordPress 源站
你需要已有一个可正常访问的 WordPress 网站,例如:
https://www.example.com
并且 Argon 主题资源可以直接访问,例如:
https://www.example.com/wp-content/themes/argon/style.css
5.2 域名
你至少需要一个主域名,并可以添加子域名解析。
示例:
主站域名:www.example.com
静态资源域名:static.example.com
如果你的主站是裸域:
https://example.com
也可以使用:
https://static.example.com
5.3 DNS 管理权限
你需要能在域名 DNS 管理后台添加 CNAME 记录。
例如:
static.example.com CNAME xxxxx.eo.dnse.com
5.4 EdgeOne 服务
你需要开通腾讯云 EdgeOne,并具备以下能力:
- 添加站点;
- 添加加速域名;
- 配置源站;
- 配置 HTTPS;
- 配置缓存规则;
- 配置 HTTP 响应头;
- 刷新缓存。
5.5 HTTPS 证书
建议为静态域名配置 HTTPS:
https://static.example.com
可以使用:
- EdgeOne 免费证书;
- 腾讯云 SSL 证书;
- 自有证书上传。
6. 推荐架构
6.1 基础架构
www.example.com
WordPress 主站,负责动态页面、后台、API、PHP 逻辑
static.example.com
EdgeOne 静态加速域名,负责 CSS、JS、字体、图片等静态资源
6.2 回源配置
加速域名:static.example.com
源站地址:www.example.com
回源协议:HTTPS
回源 Host:www.example.com
6.3 资源访问示例
源站原始资源:
https://www.example.com/wp-content/themes/argon/style.css
EdgeOne 加速后:
https://static.example.com/wp-content/themes/argon/style.css
7. EdgeOne 配置教程
以下步骤以:
主站:www.example.com
静态域名:static.example.com
主题路径:/wp-content/themes/argon/
为例。
实际操作时请替换为你自己的域名。
7.1 添加静态加速域名
进入 EdgeOne 控制台:
EdgeOne 控制台 → 站点管理 → 域名服务/加速域名 → 添加域名
填写:
加速域名:static.example.com
业务类型:静态加速/CDN 加速
源站类型:域名
源站地址:www.example.com
如果源站支持 HTTPS,建议选择:
回源协议:HTTPS
7.2 配置 DNS CNAME
EdgeOne 添加域名后,会提供一个 CNAME 地址,类似:
static.example.com.eo.dnse4.com
到你的 DNS 服务商添加解析:
| 类型 | 主机记录 | 记录值 |
|---|---|---|
| CNAME | static | EdgeOne 提供的 CNAME |
示例:
static.example.com CNAME static.example.com.eo.dnse4.com
等待 DNS 生效。
可以使用以下命令检查:
nslookup static.example.com
或:
dig static.example.com
7.3 配置 HTTPS
在 EdgeOne 中为:
static.example.com
开启 HTTPS。
建议配置:
HTTPS:开启
证书:免费证书或自有证书
TLS 版本:TLS 1.2 / TLS 1.3
HTTP/2:开启
强制 HTTPS:开启,可选
如果网站前台是 HTTPS,那么静态资源域名也必须是 HTTPS,否则浏览器会出现混合内容问题。
7.4 配置回源 Host
这是 WordPress 场景中非常重要的一项。
配置:
Host Header 重写:开启
回源 Host:www.example.com
原因是浏览器请求的是:
https://static.example.com/wp-content/themes/argon/style.css
但 WordPress 源站真正识别的站点域名可能是:
www.example.com
如果回源 Host 仍然是:
static.example.com
源站可能返回:
- 404;
- 403;
- 跳转;
- 证书错误;
- 默认站点内容;
- WordPress 地址异常。
所以建议设置:
回源 Host:www.example.com
7.5 配置缓存规则
建议只对静态资源路径设置缓存。
进入:
规则引擎 / 规则配置 → 新增规则
规则名称:
Argon 主题静态资源缓存
匹配条件:
请求路径匹配 /wp-content/themes/argon/*
动作:
节点缓存 TTL:7天 / 30天
浏览器缓存 TTL:1天 / 7天
推荐:
| 资源类型 | 节点缓存 TTL | 浏览器缓存 TTL |
|---|---|---|
| CSS / JS | 7 天 – 30 天 | 1 天 – 7 天 |
| 字体 | 30 天 | 7 天 – 30 天 |
| 图片 | 30 天 | 7 天 – 30 天 |
| 频繁修改文件 | 1 天 – 7 天 | 1 小时 – 1 天 |
如果你的 CSS/JS 带版本号,例如:
style.css?ver=1.2.3
可以设置更长缓存。
7.6 配置 CORS 响应头
如果浏览器报跨域错误,尤其是字体文件:
Access to font at 'https://static.example.com/xxx.woff2'
from origin 'https://www.example.com'
has been blocked by CORS policy
需要在 EdgeOne 中添加响应头。
进入:
规则引擎 → 新增规则 → 修改 HTTP 头 → 修改 HTTP 节点响应头
匹配条件建议:
请求路径匹配 /wp-content/themes/argon/*
添加响应头:
Access-Control-Allow-Origin: *
可选添加:
Access-Control-Allow-Methods: GET, HEAD, OPTIONS
Access-Control-Allow-Headers: *
推荐静态资源配置:
| Header | Value |
|---|---|
Access-Control-Allow-Origin |
* |
Access-Control-Allow-Methods |
GET, HEAD, OPTIONS |
Access-Control-Allow-Headers |
* |
注意:
如果你设置了:
Access-Control-Allow-Credentials: true
那么不能使用:
Access-Control-Allow-Origin: *
普通静态资源一般不需要 Access-Control-Allow-Credentials。
7.7 配置压缩
建议开启:
智能压缩 / Gzip / Brotli
适合压缩的文件:
.css
.js
.svg
.html
.json
.xml
不建议重复压缩:
.jpg
.png
.webp
.gif
.woff2
.zip
这些通常已经是压缩格式。
7.8 开启 HTTP/2
建议开启:
HTTP/2:开启
如果套餐支持,也可以开启:
HTTP/3 / QUIC
HTTP/2 对静态资源加载有明显帮助。
7.9 防盗链,可选
如果你希望限制别人盗用你的静态资源,可以设置 Referer 防盗链。
允许 Referer:
https://www.example.com
https://example.com
但要注意:
- 不要把空 Referer 全部拦截,可能影响正常访问;
- 不要误伤搜索引擎;
- 前期建议先不配置防盗链,确认稳定后再开启。
8. WordPress 侧配置教程
EdgeOne 配置完成后,还需要让 WordPress 页面中的静态资源 URL 变成 CDN 域名。
否则浏览器仍然会请求:
https://www.example.com/wp-content/themes/argon/...
而不是:
https://static.example.com/wp-content/themes/argon/...
由于使用的是argon主题直接在wordpress后台argon主题选项更改cnd即可。
9. 测试验证
9.1 验证 CDN 域名是否可访问
打开:
https://static.example.com/wp-content/themes/argon/style.css
如果能正常显示 CSS 内容,说明回源成功。
9.2 检查是否走 EdgeOne
使用浏览器开发者工具:
F12 → Network → 选择资源 → Headers
查看响应头中是否存在 EdgeOne 相关标识,例如:
x-cache
eo-cache-status
server
不同配置下响应头名称可能略有差异。
9.3 检查 CORS
执行:
curl -I https://static.example.com/wp-content/themes/argon/assets/fonts/example.woff2
检查是否返回:
Access-Control-Allow-Origin: *
9.4 检查缓存命中
连续请求同一资源:
curl -I https://static.example.com/wp-content/themes/argon/style.css
curl -I https://static.example.com/wp-content/themes/argon/style.css
第二次通常应更容易命中缓存。
你可以查看 EdgeOne 相关缓存头,例如:
HIT
MISS
BYPASS
具体字段以 EdgeOne 实际返回为准。
9.5 检查页面资源是否已替换
打开网站首页:
https://www.example.com
浏览器开发者工具:
F12 → Network
过滤:
css
js
font
img
确认资源是否来自:
static.example.com
而不是:
www.example.com
10. 缓存刷新流程
当你更新 Argon 主题、修改 CSS/JS/图片后,需要刷新缓存。
10.1 EdgeOne 刷新
可以刷新目录:
https://static.example.com/wp-content/themes/argon/
或刷新具体文件:
https://static.example.com/wp-content/themes/argon/style.css
10.2 WordPress 缓存刷新
如果你使用了缓存插件,例如:
- WP Rocket;
- LiteSpeed Cache;
- W3 Total Cache;
- Autoptimize;
需要同时清理插件缓存。
10.3 浏览器缓存刷新
用户浏览器可能也缓存了旧文件。
测试时可以:
Ctrl + F5
或使用无痕窗口访问。
10.4 推荐使用版本号
建议 CSS/JS 使用版本号:
style.css?ver=1.2.3
app.js?ver=1.2.3
更新文件后变更版本号,可以减少缓存不更新问题。
11. 常见问题排查
11.1 访问 static 域名返回 404
可能原因:
- 回源 Host 没配置为主站域名;
- 源站路径不存在;
- WordPress 或 Nginx 禁止访问该路径;
- EdgeOne 回源地址写错;
- 源站有防盗链或安全插件拦截。
排查:
curl -I https://www.example.com/wp-content/themes/argon/style.css
curl -I https://static.example.com/wp-content/themes/argon/style.css
如果源站能访问但 CDN 不能访问,重点检查:
回源 Host
源站协议
源站防火墙
EdgeOne 回源配置
11.2 出现字体跨域错误
报错类似:
Access to font at 'https://static.example.com/xxx.woff2'
from origin 'https://www.example.com'
has been blocked by CORS policy
解决:
在 EdgeOne 添加节点响应头:
Access-Control-Allow-Origin: *
并刷新缓存。
11.3 页面仍然从 www 加载资源
原因:
EdgeOne 只负责加速 static.example.com,不会自动修改 WordPress HTML。
解决:
- 配置 CDN 插件;
- 修改主题资源 URL;
- 使用过滤器替换;
- 清理 WordPress 页面缓存。
11.4 CSS 修改后不生效
可能原因:
- EdgeOne 缓存未刷新;
- 浏览器缓存未刷新;
- WordPress 缓存插件未刷新;
- CSS 文件版本号没变;
- 页面 HTML 仍引用旧文件。
解决:
- 刷新 EdgeOne URL;
- 清理 WordPress 缓存;
- 修改
ver参数; - 浏览器强刷。
11.5 HTTPS 混合内容
报错类似:
Mixed Content
原因:
主站是 HTTPS,但资源使用 HTTP:
http://static.example.com/...
解决:
统一使用:
https://static.example.com/...
并开启 EdgeOne HTTPS。
11.6 源站被回源打满
如果缓存命中率低,可能仍有大量请求回源。
优化:
- 延长缓存 TTL;
- 忽略无意义查询参数;
- 对静态文件开启缓存;
- 避免频繁刷新全目录;
- 观察 EdgeOne 命中率。
12. 推荐配置清单
以下是推荐配置。
12.1 EdgeOne
| 配置项 | 推荐值 |
|---|---|
| 静态域名 | static.example.com |
| 源站 | www.example.com |
| 回源协议 | HTTPS |
| 回源 Host | www.example.com |
| HTTPS | 开启 |
| HTTP/2 | 开启 |
| HTTP/3 | 可选 |
| 压缩 | Gzip/Brotli |
| 缓存路径 | /wp-content/themes/argon/* |
| 节点缓存 TTL | 7-30 天 |
| 浏览器缓存 TTL | 1-7 天 |
| CORS | Access-Control-Allow-Origin: * |
| 防盗链 | 可选 |
| 缓存刷新 | 更新主题后刷新 |
12.2 WordPress
| 配置项 | 推荐值 |
|---|---|
| CDN 域名 | https://static.example.com |
| 替换范围 | 主题静态资源 |
| 后台资源 | 不建议替换 |
| 缓存插件 | 配置后清理缓存 |
| CSS/JS 版本号 | 建议保留 |
| 图片资源 | 后续可单独优化 |
13. 安全建议
13.1 不缓存敏感路径
不要用静态域名访问或缓存:
/wp-admin/
/wp-login.php
/wp-json/
/xmlrpc.php
13.2 限制静态域名用途
静态域名建议只用于:
/wp-content/themes/argon/*
/wp-content/plugins/*
/wp-content/uploads/*
不要将登录、接口、后台绑定到静态域名使用。
13.3 防盗链谨慎开启
防盗链可以减少盗刷,但配置错误会导致资源无法加载。
建议先上线稳定后再启用。
14. 运维建议
14.1 更新主题后的操作流程
每次更新 Argon 主题后:
- 检查源站资源是否正常;
- 清理 WordPress 缓存;
- 刷新 EdgeOne 缓存;
- 浏览器无痕窗口测试;
- 检查控制台是否有 404/CORS/Mixed Content;
- 检查样式和 JS 是否正常。
14.2 建议监控指标
关注:
- EdgeOne 请求量;
- 缓存命中率;
- 回源请求量;
- 4xx 错误;
- 5xx 错误;
- 带宽用量;
- 访问延迟;
- CORS 错误;
- 源站 CPU/带宽。
14.3 缓存命中率优化
如果命中率低,可以检查:
- URL 是否带随机参数;
- 查询参数是否影响缓存;
- 缓存 TTL 是否太短;
- 是否频繁刷新缓存;
- 是否路径规则未命中;
- 是否响应头禁止缓存。
15. 最终部署示例
假设:
主站:https://www.example.com
静态域名:https://static.example.com
主题目录:/wp-content/themes/argon/
EdgeOne 配置:
加速域名:static.example.com
源站地址:www.example.com
回源协议:HTTPS
回源 Host:www.example.com
缓存路径:/wp-content/themes/argon/*
节点缓存:30 天
浏览器缓存:7 天
响应头:Access-Control-Allow-Origin: *
压缩:开启
HTTP/2:开启
HTTPS:开启
WordPress 替换:
https://www.example.com/wp-content/themes/argon/
替换为
https://static.example.com/wp-content/themes/argon/
最终资源访问:
https://static.example.com/wp-content/themes/argon/style.css
https://static.example.com/wp-content/themes/argon/assets/js/app.js
https://static.example.com/wp-content/themes/argon/assets/fonts/icon.woff2
16. 结论
EdgeOne 静态域名 → 回源 WordPress 是一种简单、低维护成本的 WordPress 静态资源加速方案。
它的核心优势是:
- 不需要迁移文件;
- 不需要 OSS/COS;
- 主题更新方便;
- 静态资源可被 EdgeOne 缓存;
- 能明显降低源站静态资源压力;
- 适合 Argon 等主题的 CSS、JS、字体、图片加速。
对于你的当前场景,推荐继续使用该方案,并重点做好:
- 回源 Host;
- HTTPS;
- 缓存规则;
- CORS 响应头;
- WordPress 静态资源 URL 替换;
- 更新后的缓存刷新。