年中的时候腾讯云和阿里云在疯狂推销自家的边缘加速,我当初在国际站部署过一次全站加速,最后感觉国内访问的速度还没直连的快因此放弃了(因为没有备案),众所周知在国内运营网站时,未备案域名无法使用国内 CDN 进行全站加速。但如果你有一个已备案的子域名,可以将静态资源"代理"到该子域名,借助 EdgeOne 实现加速。
核心思路:
资源类型 | 路径/位置 | 预期加速域名 |
|---|---|---|
CSS/JS |
| |
图片 | S3 Bucket | |
字体 |
|
确认 next.config.js 支持自定义 assetPrefix
然后还要配置一下next/image组件的安全规则 Components: Image Component | Next.js
我选择的直接就是选择国内站点, 因为国际站实名需要根据地区去实名认证才能用国内节点, 反正就很麻烦, 我注册的地区是新加坡, 然后认证就需要新加坡的护照去实名认证
DNSEdgeOne控制台用户DNSEdgeOne控制台用户添加站点 [example.com](http://example.com)返回 NS 记录或 CNAME配置 DNS 解析验证通过站点生效
操作路径: EdgeOne 控制台 → 站点管理 → 添加站点
接入方式选择:
配置项 | 值 |
|---|---|
加速域名 | |
源站类型 | 域名回源 |
源站地址 | eavan.dev(主站点) |
回源 Host | |
回源协议 | HTTPS |
配置项 | 值 |
|---|---|
加速域名 | |
源站类型 | 对象存储 / 域名回源 |
源站地址 | |
回源 Host | S3 Bucket 域名 |
回源协议 | HTTPS |
操作路径: EdgeOne 控制台 → 站点加速 → 缓存配置
EdgeOne 提供三种缓存配置方式:
节点缓存是指资源在 EdgeOne 边缘节点上的缓存时间。
配置项 | 说明 | 推荐值 |
|---|---|---|
缓存规则 | 遵循源站 / 不缓存 / 自定义 | 自定义 |
默认缓存时间 | 源站未返回 Cache-Control 时生效 | 7 天 |
强制缓存 | 忽略源站 Cache-Control: no-cache/no-store | 根据场景开启 |
推荐缓存规则(规则引擎配置):
匹配条件 | 节点缓存 TTL | 说明 |
|---|---|---|
| 31536000s (1年) | Next.js 静态资源带 hash,可长期缓存 |
| 31536000s | 同上 |
| 2592000s (30天) | 图片资源 |
| 31536000s | 字体文件 |
| 0 (不缓存) | 动态内容始终回源 |
控制客户端浏览器的缓存行为,通过修改响应头 Cache-Control: max-age 实现。
配置项 | 说明 | 推荐值 |
|---|---|---|
遵循源站 | 使用源站返回的 Cache-Control | 默认 |
自定义 | 覆盖源站设置,统一浏览器缓存时间 | 静态资源: 1 年 |
不缓存 | 返回 | HTML/API 用 |
缓存键决定了哪些请求会命中同一份缓存。默认为 URL 全路径,可根据业务需求调整。
配置项 | 说明 | 推荐设置 |
|---|---|---|
忽略查询字符串 | 忽略 URL 中的 | 静态资源开启 |
保留指定参数 | 只保留特定查询参数作为缓存键 | 按需配置 |
包含请求头 | 将指定 Header 纳入缓存键 | 多语言站点可加 |
包含 Cookie | 将指定 Cookie 纳入缓存键 | 谨慎使用,降低命中率 |
对于 Next.js 静态资源 /_next/static/*,建议开启「忽略查询字符串」,因为文件名本身已包含 hash。当源站不可用时,继续使用边缘节点上的过期缓存,保证业务可用性。
配置项 | 说明 | 推荐 |
|---|---|---|
开启离线缓存 | 源站故障时使用过期缓存响应 | ✅ 建议开启 |
部署新版本后需要清除旧缓存。
刷新方式 | 说明 | 使用场景 |
|---|---|---|
URL 刷新 | 精确刷新指定 URL | 单个文件更新 |
目录刷新 | 刷新指定路径下所有文件 | 批量更新 |
全站刷新 | 清除整个站点缓存 | 大版本发布 |
Cache-Tag 刷新 | 按标签刷新(需配合响应头) | 精细化运营 |
API 方式刷新缓存示例
自动压缩响应内容,减少传输体积。
配置项 | 说明 | 推荐 |
|---|---|---|
Gzip 压缩 | 通用压缩,兼容性好 | ✅ 开启 |
Brotli 压缩 | 压缩率更高,现代浏览器支持 | ✅ 开启 |
伪代码如下, 根据自己项目求改,别忘记环境变量和前面的nextjs.config的配置内容
https://cdn.example.com/_next/static/chunks/main.js 返回正常Cache: HIT(表示命中缓存)https://img.example.com/path/to/image.jpg 加载正常
解决方案: 在 EdgeOne 或源站配置 CORS 响应头:
Access-Contro
l-Allow-Origin: https://example.com
Access-Control-Allow-Methods: GET, OPTIONS

可能原因 | 排查方法 | 解决方案 |
|---|---|---|
回源 Host 错误 |
| 修正回源 Host |
路径不匹配 | 检查 assetPrefix 配置 | 确保路径一致 |
源站未部署 | 直接访问源站资源 | 先部署再配置 CDN |
架构规划图