腾讯云CDN对接使用全攻略:从开通到生产级配置与性能优化

apphuang2026年07月02日 09:19:404

1. CDN 的基本原理与适用场景

内容分发网络(Content Delivery Network,CDN)的核心思路是将源站上的静态资源缓存到分布在全国或全球各地的边缘节点上。当用户发起访问请求时,CDN 会根据用户的地理位置将请求调度到最近的边缘节点。如果该节点已经缓存了目标资源,则直接返回给用户;如果尚未缓存,节点会回源站拉取资源,缓存后再返回给用户。这种机制有效缩短了网络传输距离,显著提升了资源的加载速度,同时大幅降低了源站的带宽压力。

CDN 尤其适合图片、CSS 样式表、JavaScript 脚本、字体文件、安装包、音视频文件等静态资源的加速分发。对于前端项目,构建后的静态文件可以存放在对象存储 COS 中,再通过 CDN 加速访问。但对于频繁变化的动态接口,需要谨慎配置缓存规则,避免用户拿到过期数据。

需要先登录腾讯云控制台,点击:腾讯云控制台,还没有账号,点击:注册后再关联,已有账号点击:登录后再关联

2. 开通 CDN 服务与准备工作

在使用腾讯云 CDN 之前,需要完成以下准备工作。

2.1 账号注册与实名认证

首先需要注册腾讯云账号并完成实名认证。实名认证是使用中国境内加速服务的前提条件,也是保障账号安全与合规的基础。

2.2 开通 CDN/ECDN 服务

进入 CDN 控制台,勾选同意服务条款后,单击"免费开通"即可开通 CDN 与 ECDN 服务。不使用的服务不会产生费用,开通后可按需使用。

2.3 准备加速域名

准备一个已经完成备案的域名。如果加速区域选择中国境内或全球,域名需要在工信部进行过备案;如果仅加速中国境外区域,域名可以不需要备案。域名长度不超过81个字符。支持接入泛域名,如 *.example.com,但接入泛域名后暂不支持其子域名或二级泛域名在其他账号中接入。

2.4 准备源站

准备一个可访问的源站,可以是云服务器 CVM、对象存储 COS,也可以是第三方对象存储(如 AWS S3、阿里云 OSS、华为 OBS、七牛云 kodo 等)。

2.5 选择加速区域

腾讯云 CDN 支持中国境内、中国境外和全球三个加速区域。不同加速区域的计费策略不同。如果加速区域为全球,可以在域名配置中为境内和境外分别设置独立的区域源站。需要特别注意的是,如果加速区域为中国境内但源站位于中国香港或其他境外区域,跨境回源可能导致回源失败或速度变慢。

3. 添加加速域名与源站配置

3.1 添加域名

登录 CDN 控制台,在左侧导航栏中单击"域名管理"进入域名管理页面,单击"添加域名"。在域名配置页面填写加速域名、加速区域、所属项目和标签等信息。

当接入域名为泛域名,或已被其他用户接入,或首次接入一个新域名时,需要验证域名的归属权。若域名解析商为腾讯云,可以配置 TXT 解析记录完成验证。

3.2 配置源站

源站即为存储网站资源的服务器,当用户请求的资源在 CDN 节点无缓存时,节点会读取域名配置的源站信息,回源拉取资源并缓存在节点。因此,源站信息务必填写准确,保证 CDN 能正常回源获取对应的资源。

源站类型支持以下几种:

  • 自有源站:填写已拥有稳定运行的业务服务器的 IPv4 地址或域名作为源站地址,不支持 IPv6 源站。
  • COS 源:选择对象存储中的一个存储桶作为源站,支持开启私有存储桶访问。
  • 第三方对象存储:支持 AWS S3、阿里云 OSS、华为 OBS、七牛云 kodo 等。

回源协议支持 HTTP 回源、HTTPS 回源和协议跟随三种模式。如果选择 COS 作为源站,需要在 COS 存储桶的权限管理中先对 CDN 服务进行授权。

3.3 配置 CNAME

添加域名成功后,在域名管理页面可以查看到 CDN 为您的域名分配的加速 CNAME。您需要前往接入域名的 DNS 服务商处,为此域名添加该 CNAME 记录。待 DNS 配置生效后,即可开始加速服务。配置 CNAME 的原理是将域名的 CNAME 记录指向腾讯云 CDN 分配的 CNAME,实现域名解析到 CDN 边缘节点。

4. 缓存配置

4.1 节点缓存过期配置

腾讯云 CDN 缓存资源为触发式。当用户发起针对某资源的访问,若请求触达的 CDN 节点未缓存该资源,则回用户源站拉取资源,成功拉取到资源后在节点进行缓存并返回给用户。每一个 CDN 节点上的缓存资源都有"过期时间"的概念,若请求到的缓存资源已到期,即便节点仍有缓存,也会判定为无效,进行再次回源拉取。

登录 CDN 控制台,在左侧菜单栏选择域名管理,单击域名操作列的"管理",进入域名配置页面,切换至"缓存配置",即可找到节点缓存过期配置。

CDN 支持以下四种类型的节点缓存过期规则:

  • 文件类型:根据填入的文件后缀进行缓存过期时间设置,如 jpg;css,不同后缀之间用分号间隔。
  • 文件夹:根据填入的目录路径进行缓存过期时间设置,如 /test,不同目录之间用分号间隔。
  • 全路径文件:指定完整的文件路径进行缓存过期时间设置,如 /index.html,支持匹配模式如 /test/*.jpg。
  • 首页:针对根目录设置缓存过期时间。

单个域名至多可添加100条缓存规则,多条规则支持调整优先级(底部优先级大于顶部),缓存时间最大可设365天。

4.2 缓存策略建议

对于图片、字体、CSS、JS 等版本化资源,可以设置较长缓存时间。例如文件名中包含 hash 的资源,一般不会被覆盖更新,可以缓存较长时间。对于 HTML 文件,建议缓存时间短一些,因为 HTML 通常负责引用最新的静态资源,如果缓存过久,用户可能无法及时看到新版本页面。对于不希望缓存的内容,可以设置不缓存规则。

一个常见的缓存策略示例:

*.js、*.css、*.png、*.jpg 缓存 7 天或更久
*.html 缓存较短时间
接口请求不缓存

4.3 缓存键规则配置

缓存键规则用于控制 CDN 节点在缓存资源时是否忽略 URL 中的查询参数。添加加速域名时,根据不同的业务类型,忽略参数默认关闭或开启。如果源站根据 URL 参数吐出不同的资源,需要确保 CDN 域名配置的缓存键规则与之一致。

5. HTTPS 配置

腾讯云 CDN 已经全面支持 HTTPS 配置。您可以上传自有证书进行部署,或前往证书管理控制台申请由亚洲诚信免费提供的第三方证书。

5.1 配置 HTTPS 证书

在控制台左侧菜单栏中进入"证书管理",单击"配置证书",选中需要配置证书的加速域名。加速域名的状态需要为"部署中"或"已启动",关闭状态的加速域名不可进行 HTTPS 加速配置。也可以在 SSL 证书服务的"已签发"页面选择证书,单击"一键部署"到 CDN。

5.2 强制跳转与 HTTP/2

开启 HTTPS 后,建议配置强制跳转,将 HTTP 请求自动 301 或 302 重定向到 HTTPS。同时可以开启 HTTP/2 协议支持,进一步提升传输效率。

6. 安全防护配置

6.1 Referer 防盗链

在 CDN 控制台的域名配置页面,第二栏"访问控制"中可找到防盗链配置。默认情况下防盗链配置为关闭状态。单击开关,选择防盗链类型(黑名单或白名单)并填入域名列表,即可启用防盗链配置。通过 Referer 防盗链可以有效防止资源被未授权站点盗用。

6.2 IP 访问控制

可以配置 IP 黑白名单,限制特定 IP 或 IP 段的访问。在 serverless.yml 中配置示例如下:

ipFilter:
  switch: on
  filterType: blacklist
  filters:
    - '1.2.3.4'
    - '2.3.4.5'

6.3 时间戳鉴权

配置时间戳防盗链后,客户端在发起请求时需要按照配置计算签名并携带至服务端,CDN 节点进行服务端校验,校验通过后才继续放行。CDN 提供了四种鉴权签名计算方式(TypeA、TypeB、TypeC、TypeD)供您选择。

以 TypeA 为例的 Python 鉴权签名计算示例:

import time
import hashlib

def generate_type_a_url(path, key, ts=None):
    url = 'http://www.test.com'
    now = int(time.time()) if ts is None else int(time.mktime(time.strptime(ts, "%Y%m%d%H%M%S")))
    rand_str = '123abc'
    sign = hashlib.md5(('%s-%s-%s-%s-%s' % (path, now, rand_str, 0, key)).encode()).hexdigest()
    request_url = '%s%s?sign=%s&t=%s' % (url, path, sign, now)
    return request_url

6.4 用量封顶配置

用量封顶配置可以有效防御被刷流量。封顶配置支持瞬时用量(流量/带宽/HTTPS请求数封顶)和累计用量(流量/HTTPS请求数封顶)。流量封顶即统计域名的流量消耗,达到设定的流量阈值后自动触发告警或停用服务。

7. 刷新与预热

7.1 缓存刷新

登录 CDN 控制台,单击左侧目录的"刷新预热",进入后可按需提交 URL 刷新及目录刷新任务。URL 刷新每日数量最多不超过10000个,每次刷新提交的 URL 数量不超过1000个,刷新任务生效时间约为5分钟。当文件配置的缓存过期时间少于5分钟时,刷新生效时间可能更短。

7.2 缓存预热

腾讯云 CDN 提供资源预热功能,可将指定资源主动从源站加载至 CDN 加速节点并缓存。当用户首次请求资源时,可直接从 CDN 加速节点获取缓存的资源,无需再次回源。建议在配置完成后为资源做好预热,提前将静态资源预热至 CDN 加速节点,降低源站压力,提高响应与下载速度。

预热文件时,若 CDN 缓存未过期,则 CDN 不会主动回源更新文件。建议在文件更新时,先进行缓存刷新,再提交缓存预热。预热时 CDN 会主动回源拉取所需内容,因此提交大批量预热任务后,会造成源站带宽增大。

8. 自动化管理:Serverless Components 与 API

8.1 使用 Serverless Components 管理 CDN

腾讯云 CDN 组件是 serverless-tencent 组件库中的基础组件之一。通过 CDN 组件,您可以快速方便地创建、配置和管理腾讯云的 CDN 产品。

前提条件:

  • 已安装 Node.js(版本需不低于 8.6,建议使用 Node.js 10.0 及以上版本)。
  • 已安装 Serverless Cloud Framework。
  • 已开通 CDN 服务。

操作步骤:

# 1. 新建项目文件夹
mkdir cdnDemo
cd cdnDemo

# 2. 创建 serverless.yml 配置文件
touch serverless.yml

# 3. 在 serverless.yml 中进行配置

serverless.yml 配置示例:

component: cdn
name: cdnDemo
app: appDemo
stage: dev
inputs:
  area: overseas
  domain: mysite.com
  origin:
    origins:
      - xxx.cos.ap-guangzhou.myqcloud.com
    originType: cos
    originPullProtocol: https
  serviceType: web
  forceRedirect:
    switch: on
    redirectType: https
    redirectStatusCode: 301
  https:
    switch: on
    http2: on
    certInfo:
      certId: 'abc'

执行以下命令进行扫码授权部署:

scf deploy

如需配置持久化密钥,可以创建 .env 文件配置 SecretId 和 SecretKey:

TENCENT_SECRET_ID=your_secret_id
TENCENT_SECRET_KEY=your_secret_key

8.2 使用 Python SDK 调用 CDN API

腾讯云官方提供了 Python SDK(tencentcloud-sdk-python-cdn),允许 Python 开发者编写使用腾讯云 CDN 服务的软件。

安装 SDK:

pip install tencentcloud-sdk-python-common

通过 API 添加加速域名的示例(curl):

curl -X POST https://api.cloud.tencent.com/v2/index.php?Action=AddCdnHost \
  -H "X-TC-Action: AddCdnHost" \
  -H "X-TC-Timestamp: 1580000000" \
  -H "X-TC-SecretId: AKIDxxxx" \
  -H "X-TC-SecretKey: xxxx" \
  -d "hostName=example.com"

腾讯云提供的 Python 脚本可以通过调用 GenerateLogList 接口,自动生成指定域名和日期范围的日志下载链接。API Explorer 工具也支持在线调用 API 进行调试。

9. 最佳实践

9.1 静态资源版本化管理

使用 CDN 后,资源更新并不一定会立即对所有用户生效,因为节点上可能还保留旧缓存。发布新版本时建议采用文件名 hash 策略:

app.a8f31c.js
style.9d21ab.css

这样每次构建后文件名都会变化,用户会直接请求新资源,避免旧缓存问题。如果某些资源必须使用固定路径,则需要在发布后执行 CDN 缓存刷新,让节点主动删除旧文件。

9.2 静态资源使用独立域名

静态资源尽量使用独立域名,避免和主站 API 共用域名。前端构建产物建议开启文件 hash,方便长缓存。公开资源和私有资源应使用不同存储桶或不同目录策略。

9.3 源站与加速区域同地域

建议源站根据加速区域配置相同地域的源站。例如加速区域为中国境内,源站需设置在中国境内。如果加速区域为全球,可以在域名配置中为境内和境外分别设置独立的区域源站。

9.4 分片回源

开启分片回源配置后,CDN 会默认携带 Range 回源请求。假如用户请求的部分文件在节点上未缓存或缓存已过期,CDN 会根据用户请求进行分片回源,仅拉取用户需要的部分文件至节点缓存,同时返回给用户。开启分片回源配置时,需要确认源站已经支持 Range 请求(腾讯云 COS 默认支持)。

9.5 监控与告警

建议配置用量封顶告警,当流量或带宽达到设定的阈值时及时通知。同时可以关注 CDN 控制台提供的实时监控数据,包括流量、带宽、请求数、命中率等指标,及时发现异常并调整配置。

10. 常见问题排查

10.1 访问慢或延迟高

检查用户与 CDN 节点的物理距离。确认源站响应速度是否正常。检查缓存命中率,如果命中率过低,可能是缓存过期时间设置过短或缓存规则配置不当。

10.2 出现 404 状态码

检查源站是否正常,源站信息、回源 HOST 配置是否发生变更。确认源站地址填写准确且可访问。

10.3 CDN 加速没有效果

检查域名解析是否正确,CNAME 记录是否已正确设置。在 CDN 控制台中确认加速域名状态是否为"已启动"。对于首次访问的资源,可以尝试进行 URL 预热。

10.4 HTTPS 配置后无法访问

确认证书是否已正确部署,加速域名状态是否为"已启动"。确认源站是否支持 HTTPS 访问(如果开启了 HTTPS 回源)。

10.5 缓存刷新不生效

确认刷新任务是否已提交成功。刷新任务生效时间约为5分钟,请耐心等待。如果文件配置的缓存过期时间少于5分钟,刷新生效时间可能更短。

问答

问:腾讯云 CDN 加速域名必须备案吗?
答:不一定。如果加速区域选择中国境内或全球,域名需要在工信部进行过备案。如果仅加速中国境外区域,域名可以不需要备案。

问:CDN 缓存刷新后多久生效?
答:URL 刷新任务生效时间约为5分钟。当文件配置的缓存过期时间少于5分钟时,刷新生效时间可能更短。

问:如何防止 CDN 流量被恶意盗刷?
答:可以通过多种方式防护:配置 Referer 防盗链、配置 IP 黑白名单、开启时间戳鉴权、配置用量封顶。建议综合使用多种防护手段。

问:COS 作为 CDN 源站时需要注意什么?
答:需要在 COS 存储桶的权限管理中先对 CDN 服务进行授权。如果存储桶为私有,需要开启私有存储桶访问。建议配置完成后进行缓存预热。

问:CDN 缓存时间设置多长合适?
答:对于带 hash 的版本化静态资源(如 CSS、JS、图片),可以设置较长的缓存时间(如7天或更久)。对于 HTML 文件,建议缓存时间短一些。对于动态接口,建议不缓存或设置极短缓存时间。

问:如何实现 CDN 自动化管理?
答:可以使用 Serverless Components 通过 serverless.yml 配置文件管理 CDN,也可以使用腾讯云官方提供的 Python SDK 或直接调用 API 进行自动化管理。

相关文章

腾讯云代理返点佣金政策是多少?

腾讯云代理返点佣金政策是多少?

点击下链接注册一下腾讯云账号http://www.ccusoft.com/t.htm腾讯云代理商,具体的意思是就是替腾讯云推广腾讯云产品的,比如腾讯云的服务器,数据库,安全产品,COS,CDN等。代理…

腾讯云服务器购买优惠!3 个省钱攻略 + 1 个安全真相,新手必看!

腾讯云服务器购买优惠!3 个省钱攻略 + 1 个安全真相,新手必看!

最近后台总收到小伙伴私信:“腾讯云服务器看着挺好,但价格有点顶,学生党 / 小团队实在买不起咋办?” 别急!今天就来手把手教你 “花小钱办大事”,不光有省钱攻略,还会扒一扒大家最关心的安全问题,看完这…

After 10 Years as a Tencent Cloud Agent, Let Me Talk About Rebates

After 10 Years as a Tencent Cloud Agent, Let Me Talk About Rebates

Lately, I’ve been getting a lot of questions from friends: “Does Tencent offer rebates? Can you…

2026腾讯云代理商返利政策深度解析:头部代理合作指南与成本优化策略

2026腾讯云代理商返利政策深度解析:头部代理合作指南与成本优化策略

一、腾讯云代理商返利机制核心逻辑1. 行业背景与代理模式腾讯云作为国内公有云市场的第二大领导者(据IDC 2025年数据,占据国内27.6%的市场份额),采用渠道商代理模式拓展市场。代理商负…

2026腾讯云代理商返佣政策全解析:五级代理体系与企业上云成本优化指南

2026腾讯云代理商返佣政策全解析:五级代理体系与企业上云成本优化指南

一、腾讯云五级代理体系:权益阶梯与合作价值1. 五级代理的核心权益差异腾讯云按规模、服务能力与合作深度,构建了从基础到顶级的五级代理体系,各级权益呈现显著阶梯差:•标准级代理:入门门槛最低,仅能提供基…

2026年腾讯云代理深度解析:从折扣体系到最优合作策略

2026年腾讯云代理深度解析:从折扣体系到最优合作策略

上海汪远信息科技有限公司作为腾讯云全国级殿堂级代理,凭借13年云服务经验与深厚的官方合作关系,为企业提供全方位的上云支持,可百度:上海汪远信息科技有限公司,微信:791201210一、腾讯云代理体系全…