CDN 接入与切流说明
一、目标
在不改后端代码、不改数据库、不改小程序图片字段的前提下,将图片访问链路从"直连 COS"切换为"CDN 加速后回源 COS"。
当前链路:
text
用户 -> img.xxxxx.cn -> COS
切换后链路:
text
用户 -> img.xxxxx.cn -> CDN -> COS
二、前提条件
- COS 桶已创建并可正常访问。
- COS 自定义域名
img.xxxxx.cn已配置。 - COS 自定义域名 HTTPS 证书已配置。
- 小程序端当前已经通过
https://img.xxxxx.cn/...正常加载图片。 - 数据库存储的是
objectKey,后端统一返回完整图片 URL。
三、接入步骤
1. 开通 CDN
- 进入腾讯云
内容分发网络 CDN控制台。 - 勾选服务协议。
- 点击
免费开通。 - 如可领取
0 元试用 100GB 境内流量包,建议先领取。
2. 在 COS 控制台添加自定义 CDN 加速域名
路径:
text
COS 桶详情 -> 域名与传输管理 -> 自定义 CDN 加速域名
配置项:
- 域名:
img.xxxxx.cn - 加速地域:
中国境内 - 源站类型:
默认源站 - 回源鉴权:关闭
说明:
- 当前场景为公有读 COS + 单源站图片分发,不需要额外配置复杂回源规则。
- 这里的"默认源站"本质上就是当前 COS 桶。
3. 完成域名归属验证
添加 CDN 加速域名时,腾讯云会要求先验证域名归属。
需要在 DNS 解析平台新增一条 TXT 记录:
- 主机记录:
_cdnauth - 记录类型:
TXT - 记录值:使用腾讯云弹窗中提供的那一串校验值
- TTL:
600
等待几分钟后,回到腾讯云点击 验证。
说明:
- 这条 TXT 记录仅用于验证域名归属。
- 不影响当前生产图片访问。
4. 配置 CDN HTTPS 证书
路径:
text
CDN 控制台 -> 证书管理 -> 证书配置
配置方式:
- 域名选择:
img.xxxxx.cn - 证书来源:优先选择
已托管证书 - 证书选择:选择当前已用于
img.xxxxx.cn的证书
说明:
- COS 自定义域名有证书,不代表 CDN 自动继承。
- CDN 侧必须单独绑定证书。
5. 配置 CDN 防盗链
路径:
text
CDN 域名详情 -> 访问控制 -> 防盗链配置
配置方式:
- 开启防盗链
- 模式:
referer 白名单 - 白名单:
*.xxxxx.cnxxxxx.cn*.servicewechat.comservicewechat.com
说明:
- CDN 前面多了一层访问入口,所以防盗链不能只配 COS。
- 当前阶段只配置 Referer 防盗链即可。
流量防盗刷配置(仅限中国大陆)先不启用,避免误伤正常访问。
6. 配置 CDN 缓存
路径:
text
CDN 域名详情 -> 缓存配置
6.1 节点缓存过期配置
新增或保留规则:
- 类型:
全部文件 - 内容:
全部文件 - 缓存时间:
30天
说明:
- 当前图片文件名使用
md5,内容变化后 URL 会变化。 - 因此适合长缓存。
6.2 浏览器缓存过期配置
新增一条规则:
- 类型:
全部文件 - 内容:
* - 缓存选项:
缓存 - 缓存时间:
30天
说明:
- 这一步是为了让浏览器和小程序 WebView 更容易复用本地缓存。
6.3 状态码缓存
建议保留:
404->10秒
说明:
- 404 不要缓存太久,10 秒较稳妥。
6.4 其他项
- HTTP 头部缓存配置:开启
- 访问 URL 重写配置:关闭
7. 正式切流
在 DNS 解析平台修改 img 这条 CNAME:
旧值:
text
xxxxx-img-blog-8888888888.cos.ap-guangzhou.myqcloud.com
新值:
text
img.xxxxx.cn.cdn.dnsv1.com
说明:
- 这一步才是真正把生产流量从"直连 COS"切到"先走 CDN 再回源 COS"。
- 在此之前的所有动作,都是准备动作,不会正式切生产流量。
四、切流后验证
建议在低峰期切流,切流后立即验证以下内容:
1. 浏览器验证
- 打开任意一张图片 URL
- 确认可正常访问
- 确认 HTTPS 无证书错误
2. 小程序验证
- 首页产品图正常展示
- 轮播图正常展示
- 产品详情轮播图正常展示
- 富文本图片正常展示
3. 控制台验证
- CDN 控制台出现流量
- COS 控制台开始出现
CDN 回源流量 - COS 直连外网下行占比逐步下降
五、回退方案
如果切流后访问异常,可直接回退。
回退方式:
将 DNS 中 img 这条 CNAME 改回原值:
text
img.xxxxx.cn
-> xxxxx-img-blog-8888888888.cos.ap-guangzhou.myqcloud.com
说明:
- 回退不需要改代码。
- 回退不需要改数据库。
- 回退不需要重启后端。
- 回退只需要改回 DNS 解析。
六、是否需要改代码
本次 CDN 接入不需要改代码。
原因:
- 当前数据库存的是
objectKey - 后端返回的是
https://img.xxxxx.cn/{objectKey} - 切 CDN 只是把
img.xxxxx.cn背后的目标从 COS 改成 CDN
因此:
- 后端代码不用改
- 数据库不用改
- 小程序代码不用改
七、结论
本次 CDN 接入属于"只改云侧配置和 DNS"的切换方案。
只要 CDN 证书、防盗链、缓存规则都已配置完成,最后修改 img.xxxxx.cn 的 CNAME 后,图片流量就会正式走 CDN。