文档

CDN访问加速

更新时间:

CDN通过将OSS资源缓存至就近的CDN节点实现加速访问OSS。相比直接访问OSS资源,CDN具有更高的带宽上限,可有效避免OSS下行带宽和Bucket地域的限制。通过CDN节点进行分发,能够有效减少访问延迟。

使用场景

使用CDN加速访问OSS可以提升用户访问速度,改善用户体验。以下是使用CDN加速访问OSS的常见场景:

  • 在线播放音视频文件

    如果您通过OSS提供音视频在线播放等服务,CDN可以将音视频内容分发到全球各地的边缘服务器,降低音视频播放的缓冲时间,提供更好的观看体验。

  • 高并发访问

    当您的网站或应用程序遇到高并发访问量时,CDN可以分发用户请求到多个边缘服务器上,实现负载均衡,减轻源服务器的压力,并且保持较快的响应速度。

  • 大文件传输

    如果您需要通过OSS访问或下载较大的文件,结合CDN可以提供更高的带宽和传输速度,减少文件下载时间。

  • 全球用户

    如果您的网站或应用程序的用户分布在全球各地,使用CDN可以将内容缓存在离用户更近的服务器节点上,降低数据传输的延迟,提高访问速度。

前提条件

  • 已创建一个OSS Bucket,且上传了相关资源。具体操作,请参见上传文件

  • 已开通阿里云CDN服务。具体操作,请参见开通CDN服务

  • 已注册二级域名。支持绑定非阿里云注册的域名。如果您还未注册域名,您可以在阿里云域名服务平台注册域名。具体步骤,请参见注册域名

  • 如果要绑定的Bucket的地域在中国内地,确保域名已备案。支持绑定非阿里云备案的域名。如果您的域名还未备案,您可以在阿里云ICP备案系统备案域名。具体步骤,请参见ICP备案流程概述

背景信息

为了更好地应对访问量的增长,并避免性能瓶颈,建议您将静态数据存储到OSS中,并通过CDN加速OSS的访问。这将使传统的动态资源和静态资源不分离的网站架构变为动态资源和静态资源分离的云上网站架构。通过这种架构改造,可以大大提高网站的稳定性和可靠性,同时为网站的访问速度带来显著的提升。

传统网站架构

如下图所示,传统网站架构下,动态资源和静态资源不分离,随着访问量的增长,性能会成为瓶颈。

image

该架构的要点如下:

  • 将动态资源和静态资源都存放在服务器上。

  • 用户直接访问服务器请求数据。

该架构有以下劣势:

  • Web服务器高负载

    动态数据和静态数据共用一台服务器,当网站访问量增加时,服务器可能无法承受高负载,从而导致网站响应速度变慢,甚至崩溃。

  • 存储空间难以扩容

    静态资源的存储空间会受到服务器硬盘容量的限制。当存储空间不足时,要对服务器硬盘进行扩容或升级,需要投入更多的资金和时间成本。

云上网站架构

如下图所示,云上网站架构下,动态资源和静态资源分离,能够解决海量用户访问的性能瓶颈问题。

image

该架构的要点如下:

  • 将动态资源例如Web程序、数据库等存放在云服务器ECS上。

  • 将静态资源例如图片、音视频、静态脚本等存放在对象存储OSS上。

  • 将OSS作为CDN的源站,通过CDN加速分发,使用户通过CDN节点就近获得文件。

该架构有以下优势:

  • 降低了Web服务器负载

    OSS的资源缓存至就近的CDN节点,通过CDN节点进行分发,缩短了网络传输距离,加快了用户的调用速度。

  • 支持海量存储

    OSS的存储空间弹性无限扩展,您无需考虑存储架构升级。

  • 降低了存储费用和流量费用

    使用该架构会产生OSS的存储费用、CDN的下行流量费用以及极少量的回源流量费用。其中OSS的存储费用仅为ECS云盘费用的一半,而CDN流量的单价约为OSS外网流量单价的30%~40%。

    说明

    关于OSS存储费用的更多信息,请参见存储费用

费用说明

将OSS作为CDN源站时,可能会产生CDN下行流量费用以及OSS流出到CDN流量费用。更多信息,请参见CDN加速OSS计费说明

操作步骤

此处以加速域名oss.example.com为例介绍具体操作。您可以根据自己的实际情况来选择加速域名,包括主域名、二级域名、泛域名等。

步骤一:添加域名并解析域名

快速部署

您可以使用资源编排ROS一键添加需要加速的域名,并将域名解析至CDN加速域名,从而快速添加域名并解析域名。

  1. 打开一键配置模板链接

  2. 资源编排 ROS控制台的创建资源栈页面的配置参数步骤,填写加速域名为需要加速的域名,例如oss.example.com,填写源站信息为OSS Bucket对应的外网域名,然后单击创建

    资源栈的资源栈信息页签下的状态显示创建中

  3. 资源栈的状态显示创建成功后,单击输出页签,查看一键部署的Cname。

手动部署

  1. 添加域名。

    1. 登录CDN管理控制台,选择域名管理

    2. 单击添加域名,设置以下参数:

      • 加速区域:选择仅中国内地

      • 加速域名:输入加速域名,该示例为oss.example.com

      • 业务类型:选择图片小文件

      • 源站信息:单击新增源站信息,然后选择OSS域名和需要加速的OSS域名(即之前创建的OSS Bucket对应的域名),其他参数保持默认值。单击确定

    3. 仔细阅读并确认同意后,选中我理解并同意以上合规承诺数据跨境合规承诺,单击下一步,然后单击返回域名管理

    4. 等到域名状态为正常运行时,复制CNAME值,该示例为oss.example.com.w.kunlunaq.com

  2. 解析域名。

    1. 登录DNS管理控制台,选择域名解析

    2. 单击已添加域名oss.example.com右侧的解析设置

    3. 在解析设置页面,单击添加记录

    4. 添加记录面板,配置以下参数:

      • 记录类型:选择CNAME

      • 主机记录:输入oss

      • 记录值:输入之前复制的CNAME值oss.example.com.w.kunlunaq.com

      • 其他参数:保留默认值。

    5. 单击确认。等待几分钟后,使用ping命令查看加速域名是否生效。下图表示已生效。

      ping

步骤二:开启CDN缓存自动刷新

  1. 将加速域名绑定至OSS Bucket。

    1. 进入OSS控制台,单击左侧导航栏的Bucket列表,然后选择对应的Bucket。

    2. 在左侧导航栏,选择Bucket配置 > 域名管理

    3. 单击绑定域名,输入加速域名oss.example.com,开启自动添加 CNAME 记录,然后单击提交

      更多信息,请参见绑定自定义域名

  2. 开启CDN缓存自动刷新。

    1. 单击开启加速域名对应的CDN缓存自动刷新下的支持的操作

    2. 下拉选择需要开启CDN缓存自动刷新操作对应的API接口名称,然后单击确定

  3. (可选)按目录或文件后缀名配置静态资源的缓存过期时间。

    缓存过期时间指源站资源在CDN节点缓存的时长达到预设时间时,资源将会被CDN节点标记为失效资源。如果客户端向CDN节点请求的资源已经失效,CDN会回源站获取最新资源并缓存到CDN节点。具体操作,请参见配置缓存过期时间

步骤三:通过加速域名访问OSS文件

  1. 查看文件URL。

    1. 进入OSS控制台,单击左侧导航栏的Bucket列表,然后选择对应的Bucket。

    2. 文件列表页面,单击文件操作列的详情

    3. 在文件的详情面板,从自有域名列表中选择加速域名,该示例为oss.example.com。此时,您可以看到文件URL已变为以加速域名开头的URL。

    4. 配置HTTPS证书。

      为实现客户端和全站加速节点之间请求的HTTPS加密,保障数据传输的安全性,您需要使用HTTPS进行访问。使用HTTPS访问前,您需要配置HTTPS证书。具体操作,请参见配置HTTPS证书

  2. 通过浏览器访问文件URL。

    访问公共读文件

    1. 单击复制文件URL

      2.jpg

    2. 访问文件URL。

      说明

      通过开发者工具检查发现,表示CDN缓存策略实际效果的X-Cache字段返回值以MISS开头,表明首次访问未命中CDN节点缓存,需要向源站请求资源。后续访问命中CDN节点缓存后,X-Cache字段返回值将以HIT开头,表明源站的资源已缓存到CDN节点。

      outside.jpg

    访问私有文件

    1. 开启OSS私有Bucket回源。具体操作,请参见开启私有Bucket回源

      重要

      开启私有Bucket回源功能后,CDN节点将会在回源请求中添加一个名称为Authorization的Header,其值为OSS私有Bucket鉴权签名信息。

    2. 单击复制文件URL

      2.jpg

    3. 删除文件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中不能携带用于签名认证的参数,例如ExpiresSignatureOSSAccessKeyId等,否则将会导致OSS鉴权失败。更多信息,请参见0002-00000039

    4. 访问已删除签名信息的文件URL。

      说明

      通过开发者工具检查发现,表示CDN缓存策略实际效果的X-Cache字段返回值以MISS开头,表明首次访问未命中CDN节点缓存,需要向源站请求资源。后续访问命中CDN节点缓存后,X-Cache字段返回值将以HIT开头,表明源站的资源已缓存到CDN节点。

      outside.jpg

  3. (可选)为避免OSS资源被盗刷,您需要通过CDN配置Referer防盗链或者URL鉴权。

    • Referer防盗链

      Referer防盗链是基于HTTP请求头中Referer字段(例如Referer黑白名单)来设置访问控制规则,实现对访客的身份识别和过滤,防止网站资源被非法盗用。更多信息,请参见配置Referer防盗链

    • URL鉴权

      通过CDN分发的内容默认为公开资源,用户获取URL后均可访问。为防止站点资源被恶意下载盗用,您还可以采用URL鉴权,自行配置校验鉴权URL中的加密串和时间戳,更安全有效地保护源站资源。更多信息,请参见配置URL鉴权

  • 本页导读 (1)
文档反馈