腾讯云直连COS优化:CDN 接入

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.cn
    • xxxxx.cn
    • *.servicewechat.com
    • servicewechat.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。

相关推荐
爱勇宝1 小时前
《道德经》第5章:生产环境不相信眼泪
前端·后端·架构
掘金者阿豪1 小时前
LEFT JOIN 凭空消失的背后,是优化器偷偷帮你做了决定
前端·后端
阿维的博客日记1 小时前
spring里面的@RequestParam什么意思
java·后端·spring
金金金__2 小时前
腾讯云COS接入配置
后端
Hyyy2 小时前
Git Worktree 完全讲解
前端·后端·面试
逝水无殇2 小时前
C# 反射详解
开发语言·后端·c#
Cache技术分享2 小时前
465. Java 反射 - 获取类的简单名
前端·后端
做系统的大强2 小时前
REPL里的HLT:main_stmts为空时的致命尾声
后端
薛定谔的悦2 小时前
光伏-储能-负荷联合预测:给 EMS 装上"预知能力"
后端