火山引擎内容分发(Content Delivery Network,CDN)拥有海量的缓存节点,通过将站点内容分发至靠近用户的缓存节点,减少数据传输的距离和时间,加快了内容的访问速度。您可以为存储桶绑定自定义域名,为该域名设置 CDN 加速,然后通过该加速域名访问 TOS 资源,提升访问速度。本文介绍创建、使用和停用加速域名的注意事项、操作步骤等内容。
背景说明 互联网应用大多采用动静分离架构,将视频、音频、图片、JS 脚本等静态资源放在对象存储中,并使用 CDN 进行访问加速。动静分离架构优势如下:
提高资源的加载速度。通过将站点内容分发至就近的 CDN 缓存节点,使您可就近快速获取所需资源,有效解决公网拥塞、网络延迟等问题,优化访问体验。 可以节省流量费用。通过火山引擎 CDN 回源到火山引擎 TOS 的流量,在 TOS 侧视为 CDN 回源流量 ,相比 TOS 的公网流出流量 单价更低。 实现更加灵活地访问控制。火山引擎 CDN 支持回源到 TOS 私有桶,可以有效隐藏源站域名,同时 CDN 侧支持 Referer 防盗链、Origin 防盗链、IP 黑白名单、IP 访问限速、URL 鉴权等功能,配置详情,请参见访问控制概述 。
计费说明 使用加速域名访问 TOS 时,CDN 会将相应数据从缓存节点传输给用户,同时 CDN 会根据传输给用户的数据大小计算流量,收取流量费用,由 CDN 单独收取,详细介绍,请参见计费说明 。
前提条件 使用 CDN 访问 TOS 资源前,请确保您已完成以下操作:
已开通 TOS 服务,且桶内拥有相应资源。 已开通 CDN 服务,详情请参见开通服务 。 域名已经完成工信部备案,并且状态是已备案。
注意事项 当前仅华北2(北京)、华南1(广州)和华东2(上海)支持加速域名功能。 在 CDN 控制台授权跨服务访问请求 后,访问控制 中角色 列表里会新增一个名为 ServiceRoleForCDN 的角色,如果删除了该角色,将导致跨服务访问不可用,即从 CDN 侧访问私有桶中的文件会因权限问题而失败。 在 TOS 和 CDN 组合使用场景中,CDN 一般会默认遵循源站响应的 Cache-Control、Expires 头部进行节点缓存,建议您在 CDN 侧优先自定义配置缓存规则,或者在上传文件至 TOS 时主动设置 Cache-Control、Expires 头部,详细操作,请参见 TOS API 说明 。
对于桶中已存在的文件,您可以通过修改元信息来添加这两个头部,详细操作,请参见 TOS API 说明 。 TOS 提供了镜像回源及重定向回源功能,如果组合使用 CDN 和 TOS 的重定向回源,请在 CDN 加速域名的回源配置 处打开回源跟随 功能,具体步骤,请参见配置回源跟随 。
创建加速域名
步骤一:开启域名加速 说明
TOS 控制台提供了简单的 CDN 的域名配置,如果您想要使用 CDN 的高级功能,您也可以参考 CDN 文档开启域名加速,详细介绍,请参见新增域名 。
登录对象存储控制台 。 在左侧导航栏,单击桶列表 ,在桶列表 页面单击目标桶名称。 在左侧导航栏,选择域名与传输加速 > 域名管理 ,在域名管理 页面,单击创建加速域名 。 在添加加速域名 的配置向导中,配置如下参数,单击确定 。
域名信息:默认展示存储桶的名称。 业务类型:选择业务类型,可选网页加速 、下载加速 和点播加速 。详细介绍,请参见加速场景 。 域名:输入需要加速的域名。注意
设置域名时,CDN 会验证域名所有权、是否备案等内容,如果不符合要求,则会报错。详细介绍,请参见域名检查 。
项目:选择域名所属的项目。 在解析CNAME 配置向导中,单击确定 。 登录对象存储控制台 。 在左侧导航栏,单击桶列表 ,在桶列表 页面单击目标桶名称。 在左侧导航栏,选择域名与传输加速 > 域名管理。 在域名管理 页面,单击待加速域名的开启加速 。 在添加加速域名配置向导中,配置如下参数,单击确定 。
域名信息:默认展示存储桶的名称。 业务类型:选择业务类型,可选网页加速 、下载加速 和点播加速 ,详细介绍,请参见加速场景 。 域名:展示需要加速的域名。注意
设置域名时,CDN 会验证域名所有权、是否备案等内容,如果不符合要求,则会报错。详细介绍,请参见域名检查 。
项目:选择域名所属的项目。 在解析CNAME 配置向导中,单击确定 。
步骤二:配置缓存规则 登录对象存储控制台 。 在左侧导航栏,单击桶列表 ,在桶列表 页面单击目标桶名称。 在左侧导航栏,选择域名与传输加速 > 域名管理。 在域名管理 页面,单击步骤一创建的域名上的管理CDN加速 。 在域名详情页面,单击缓存配置 页签。 在缓存配置 页签右上角,单击编辑配置 。 在节点缓存规则 区域,单击新增规则 ,配置缓存规则,详细介绍,请参见节点缓存规则 。 完成配置后,在页面右上角,单击提交编辑 。注意
如果您不配置缓存规则,CDN 默认遵循源站响应的 Cache-Control、Expires 头部进行节点缓存,而 TOS 默认不会响应这两个头部(除非在上传文件时已指定了这两个 Header)。
步骤三:解析 CNAME 您需要在加速域名的域名服务商处配置 CNAME 记录,将加速域名指向 CNAME 域名,完成解析后,才会将请求转发到 CDN 节点,实现访问加速。
获取 CNAME 地址。
登录对象存储控制台 。 在左侧导航栏,单击桶列表 ,在桶列表 页面单击目标桶名称。 在左侧导航栏,选择域名与传输加速 > 域名管理。 在域名管理 页面,目标域名的 CNAME 处获取加速域名的 CNAME 地址。 解析 CNAME。
在域名解析处将该加速域名指向其 CNAME,等待 DNS 生效。不同的域名服务商,操作不同,具体操作,请参见将站点连接到内容分发网络 。
(可选)步骤四:配置自动缓存刷新策略 CDN 加速功能将 TOS 数据缓存到就近的 CDN 节点,使您可就近快速获取所需资源。每个被缓存的文件都有一个缓存过期时间。如果一个文件在缓存中未过期,但是 TOS 源站上该文件已被更新,CDN 还是会将缓存的旧文件发送给用户。您可以使用自动缓存刷新功能触发 CDN 更新数据,确保能够获取到 TOS 源站的最新数据。
注意
已开启或开启后暂停版本控制的存储桶不支持自动缓存刷新功能。 不支持自动刷新文件夹缓存。 TOS 提交自动缓存刷新任务到一般在 3 分钟以内,任务较多时延迟时间可能会增加。 登录对象存储控制台 。
在左侧导航栏,单击桶列表 ,在桶列表 页面单击目标桶名称。
在左侧导航栏,选择域名与传输加速 > 域名管理。
在域名管理 页面,单击目标域名的配置缓存 。
在自动刷新缓存 对话框,配置如下参数。
参数
说明
服务授权
首次创建自动缓存刷新策略前,您需要在自动缓存刷新 对话框,单击点击授权 ,授予 TOS 产品服务对应存储桶读写文件的权限。
事件
触发执行缓存刷新操作的事件,即仅当 TOS 发生特定事件后,才会自动触发 CDN 更新缓存数据,当前仅支持以下事件:
tos:ObjectCreated:*:
tos:ObjectCreated:Put:简单上传对象 tos:ObjectCreated:Post:表单上传对象 tos:ObjectCreated:Origin:回源拉取对象 tos:ObjectCreated:Fetch:拉取对象 tos:ObjectCreated:Copy:复制对象 tos:ObjectCreated:CompleteUpload:分片上传 tos:ObjectRemoved:*:
tos:ObjectRemoved:Delete:删除对象 tos:LifecycleExpiration:*:
tos:LifecycleExpiration:Delete:通过生命周期规则删除对象 tos:ObjectReplication:*:
tos:ObjectReplication:ObjectCreated:通过跨区域复制规则或同区域复制规则生成新对象。 tos:ObjectReplication:ObjectModified:通过跨区域复制规则或同区域复制规则覆盖对象 前缀
自动刷新缓存策略生效的对象前缀,配置后,将对指定前缀的对象执行缓存刷新操作。
后缀
自动刷新缓存策略生效的对象后缀,配置后,将对指定后缀的对象执行缓存刷新操作。
说明
如果同时配置了前缀和后缀,则只有当对象的名称同时满足前缀和后缀的要求,才会对该对象执行缓存刷新操作。如果前后缀均未配置,则会匹配存储桶内所有对象。
完成配置后,单击确定 。
使用加速域名 将 TOS 侧文件 URL 中的桶域名替换成加速域名,即得到具有加速效果的访问 URL。
例如 TOS 侧文件原始 URL 为http://bucket-demo.tos-cn-beijing.volces.com/img/object-demo.png,加速域名为 www.example.com,则加速访问 URL 为 http://www.example.com/img/object-demo.png。
停用 CDN 加速 停用 CDN 加速后,加速域名将变为普通域名,您仍然可以通过该域名访问 TOS 内资源,但是无加速效果。
登录对象存储控制台 。 在左侧导航栏,单击桶列表 ,在桶列表 页面单击目标桶名称。 在左侧导航栏,选择域名与传输加速 > 域名管理。 在域名管理 页面,单击目标域名的停止加速 。 单击目标域名操作 列的 ... > 停用 。 在弹出的对话框,单击停用 。