CDN通过将OSS资源缓存至就近的CDN节点实现加速访问OSS。相比直接访问OSS资源,CDN具有更高的带宽上限,可有效避免OSS下行带宽和Bucket地域的限制。通过CDN节点进行分发,能够有效减少访问延迟。
使用场景
使用CDN加速访问OSS可以提升用户访问速度,改善用户体验。以下是使用CDN加速访问OSS的常见场景:
-
在线播放音视频文件
如果您通过OSS提供音视频在线播放等服务,CDN可以将音视频内容分发到全球各地的边缘服务器,降低音视频播放的缓冲时间,提供更好的观看体验。
-
高并发访问
当您的网站或应用程序遇到高并发访问量时,CDN可以分发用户请求到多个边缘服务器上,实现负载均衡,减轻源服务器的压力,并且保持较快的响应速度。
-
大文件传输
如果您需要通过OSS访问或下载较大的文件,结合CDN可以提供更高的带宽和传输速度,减少文件下载时间。
-
全球用户
如果您的网站或应用程序的用户分布在全球各地,使用CDN可以将内容缓存在离用户更近的服务器节点上,降低数据传输的延迟,提高访问速度。
前提条件
背景信息
为了更好地应对访问量的增长,并避免性能瓶颈,建议您将静态数据存储到OSS中,并通过CDN加速OSS的访问。这将使传统的动态资源和静态资源不分离的网站架构变为动态资源和静态资源分离的云上网站架构。通过这种架构改造,可以大大提高网站的稳定性和可靠性,同时为网站的访问速度带来显著的提升。
传统网站架构
云上网站架构
费用说明
将OSS作为CDN源站时,可能会产生CDN下行流量费用以及OSS流出到CDN流量费用。更多信息,请参见 CDN加速OSS计费说明 。
操作步骤
此处以加速域名
oss.example.com
为例介绍具体操作。您可以根据自己的实际情况来选择加速域名,包括主域名、二级域名、泛域名等。
步骤一:添加域名并解析域名
快速部署
您可以使用资源编排ROS一键添加需要加速的域名,并将域名解析至CDN加速域名,从而快速添加域名并解析域名。
-
打开 一键配置模板链接 。
-
在 资源编排 ROS 控制台的 创建资源栈 页面的 配置参数 步骤,填写 加速域名 为需要加速的域名,例如
oss.example.com
,填写 源站信息 为OSS Bucket对应的外网域名,然后单击 创建 。资源栈的 资源栈信息 页签下的 状态 显示 创建中 。
-
资源栈的 状态 显示 创建成功 后,单击 输出 页签,查看一键部署的Cname。
手动部署
-
添加域名。
-
登录 CDN管理控制台 ,选择 域名管理 。
-
单击 添加域名 ,设置以下参数:
-
加速区域 :选择 仅中国内地 。
-
加速域名 :输入加速域名,该示例为 oss.example.com 。
-
业务类型 :选择 图片小文件 。
-
源站信息 :单击 新增源站信息 ,然后选择 OSS域名 和需要加速的OSS域名(即之前创建的OSS Bucket对应的域名),其他参数保持默认值。单击 确定 。
-
-
仔细阅读并确认同意后,选中 我理解并同意以上合规承诺数据跨境合规承诺 ,单击 下一步 ,然后单击 返回域名管理 。
-
等到域名状态为 正常运行 时,复制CNAME值,该示例为 oss.example.com.w.kunlunaq.com 。
-
-
解析域名。
-
登录 DNS管理控制台 ,选择 域名解析 。
-
单击已添加域名
oss.example.com
右侧的 解析设置 。 -
在解析设置页面,单击 添加记录 。
-
在 添加记录 面板,配置以下参数:
-
记录类型 :选择 CNAME 。
-
主机记录 :输入 oss 。
-
记录值 :输入之前复制的CNAME值 oss.example.com.w.kunlunaq.com 。
-
其他参数:保留默认值。
-
-
单击 确认 。等待几分钟后,使用ping命令查看加速域名是否生效。下图表示已生效。
-
步骤二:开启CDN缓存自动刷新
-
将加速域名绑定至OSS Bucket。
-
开启CDN缓存自动刷新。
-
单击开启加速域名对应的 CDN缓存自动刷新 下的 支持的操作 。
-
下拉选择需要开启CDN缓存自动刷新操作对应的API接口名称,然后单击 确定 。
-
-
(可选)按目录或文件后缀名配置静态资源的缓存过期时间。
缓存过期时间指源站资源在CDN节点缓存的时长达到预设时间时,资源将会被CDN节点标记为失效资源。如果客户端向CDN节点请求的资源已经失效,CDN会回源站获取最新资源并缓存到CDN节点。具体操作,请参见 配置缓存过期时间 。
步骤三:通过加速域名访问OSS文件
-
查看文件URL。
-
通过浏览器访问文件URL。
访问公共读文件
-
单击 复制文件URL 。
-
直接访问上述的URL,通过开发者工具检查可以发现,CDN已经生效并成功缓存了这张图片。
访问私有文件
-
开启OSS私有Bucket回源。具体操作,请参见 开启私有Bucket回源 。
重要开启私有Bucket回源功能后,CDN节点将会在回源请求中添加一个名称为Authorization的Header,其值为OSS私有Bucket鉴权签名信息。
-
单击 复制文件URL 。
-
删除文件URL中包含的签名信息。
即原文件URL为
https://oss.example.com/outside.jpg?Expires=1700628094&OSSAccessKeyId=TMP.3****&Signature=B****
,删除签名信息后文件URL为https://oss.example.com/outside.jpg
。重要回源OSS的单个请求不能同时在Header以及URL请求参数中均携带签名。因此,当回源请求中携带了Authorization请求头后,文件URL中不能携带用于签名认证的参数,例如
Expires
、Signature
、OSSAccessKeyId
等,否则将会导致OSS鉴权失败。更多信息,请参见 0002-00000039 。 -
访问已删除签名信息的文件URL。通过开发者工具检查可以发现,CDN已经生效并成功缓存了这张图片。
-
-
(可选)为避免OSS资源被盗刷,您需要通过CDN配置Referer防盗链或者URL鉴权。
-
Referer防盗链
Referer防盗链是基于HTTP请求头中Referer字段(例如Referer黑白名单)来设置访问控制规则,实现对访客的身份识别和过滤,防止网站资源被非法盗用。更多信息,请参见 配置Referer防盗链 。
-
URL鉴权
通过CDN分发的内容默认为公开资源,用户获取URL后均可访问。为防止站点资源被恶意下载盗用,您还可以采用URL鉴权,自行配置校验鉴权URL中的加密串和时间戳,更安全有效地保护源站资源。更多信息,请参见 配置URL鉴权 。
-