CDN加速OSS资源

当您需要加速OSS上的图片或视频等静态资源时,可以通过阿里云CDN加速OSS域名,实现静态资源的访问加速。本文详细介绍了通过CDN控制台实现OSS加速的操作流程和应用场景。

客户价值

阿里云OSS可提供低成本的存储,CDN可以实现静态资源加速分发。使用OSS作为CDN的源站,价值和优势如下:

  • 用户访问网站资源,全部通过CDN,降低源站压力。

  • 使用CDN流量,单价低于直接访问OSS产生的外网流出流量。

  • 从距离客户端最近的CDN节点获取资源,减少网络传输距离,保证静态资源传输质量。

技术架构

当OSS作为源站时,CDN会将源站的静态资源(静态脚本、图片、音视频等)提前缓存到CDN全球加速节点,用户请求访问或下载资源时,可就近获取CDN节点上已缓存的资源,实现资源加速。

技术架构如下:场景图

业务场景

CDN的业务使用场景,分为静态内容加速、动态内容加速和安全加速。阿里云CDN只针对于静态内容加速的使用;动态内容加速和安全加速需使用阿里云全站加速DCDN

以某网站(域名image.example.com)需要加速OSS图片资源为例,业务需求和相关信息如下:

信息

说明

场景示例

网站域名

即加速域名,用来加速的网站。

image.example.com

业务类型

根据网站资源类型判断。

例如网站图片为主,业务类型为图片小文件

图片小文件

加速区域

网站访问用户所属地。

仅中国内地

源站域名

加速OSS可用同账号下的OSS Bucket,或选择输入阿里云OSS Bucket的外网域名作为源站。

***.oss-cn-hangzhou.aliyuncs.com

其他服务

其他业务需求

  • 提高缓存命中率(配置缓存过期时间)。

  • 指定CDN节点回源时的具体站点(配置回源HOST)。

  • OSS源站资源加密,避免非授权的请求盗刷流量(私有Bucket回源)。

  • 提高指定资源的访问效率(配置Range回源)。

  • 提高缓存命中率和文件分发效率(开启过滤参数)。

  • 限制访问CDN资源的用户,禁止其他网站引用您的资源链接(配置Referer黑白名单)。

  • 避免网站资源被恶意盗链,流量被恶意盗刷(配置URL鉴权)。

配置流程

基于以上业务场景,下面为您详细介绍使用阿里云CDN加速OSS资源的配置流程。流程图

计费说明

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

前提条件

  • 开通OSS服务并创建了OSS Bucket,且上传了相关资源。

  • 您已经拥有用于加速的域名。

配置CDN加速OSS资源

步骤一:开通CDN并添加加速域名

  1. 登录CDN控制台

  2. 在左侧导航栏,选择域名管理,单击添加域名,完成以下参数配置。

    • 加速域名:即最终暴露给终端用户访问时使用的域名,如本例中的:image.example.com

    • 加速区域:即需要加速OSS访问的区域,如:仅中国内地

    说明
    • 若需要加速仅中国内地,域名需要备案。具体请参考域名备案

    • 如果是首次在CDN添加该域名,需要验证该域名的归属权后才能添加。请按照控制台提示进行验证。具体请参考验证域名归属权

  3. 单击新增源站信息,配置源站。源站信息选择OSS域名,并在下方的域名输入框中选择要加速的OSS Bucket,其他参数保持默认值即可,单击确定

  4. 完成源站配置后,阅读并勾选合规承诺,单击下一步,等待人工审核。

    说明

    如果您的加速域名无需人工审核,将直接进入下一个配置环节,您可以根据实际业务需求完成推荐配置,通过配置缓存过期时间、带宽封顶、页面优化等功能,可有效提升CDN的缓存命中率、安全性和访问性能。

  5. 等到域名状态为正常运行时,会显示加速域名的CNAME值,本场景示例为image.example.com.w.kunlunsl.comimage

步骤二:配置CNAME

添加加速域名后,CDN会为您分配一个CNAME域名。请在DNS服务商处将加速域名的DNS解析记录指向分配的CNAME域名,使访问请求转发到CDN节点上,实现加速效果。

以DNS解析服务商是阿里云为例,为您介绍CNAME配置方法。具体操作和其他配置方式请参见配置CNAME

  1. 使用加速域名所在的阿里云账号,前往云解析DNS控制台的域名解析

  2. 在左侧导航栏单击域名解析,找到您的域名,在域名右侧单击解析设置

  3. 单击添加记录,添加CNAME记录。

    • 记录类型CNAME

    • 主机记录image

    • 记录值:输入CDN为您的加速域名分配的CNAME值(如:image.example.com.w.kunlunsl.com)。

    • 其他参数保持默认值即可。

  4. 单击确认

(可选)步骤三:建议配置

为了提高加速性能和访问安全,确保用户可以快速并安全地获取以及传输数据,您可以根据业务需求,完成以下配置。

在CDN控制台访问,在域名列表单击目标域名对应的管理。

根据业务需求,完成下表中的配置。

场景

描述

配置

提高缓存命中率

合理配置缓存过期时间,可有效提高缓存命中率:

不常更新的静态文件(例如,图片类型、应用下载类型等),建议设置1个月以上。

频繁更新的静态文件(例如,JS、CSS等),根据实际业务情况设置。

动态文件(例如,PHP、JSP、ASP等),建议设置为0s,即不缓存。

配置缓存过期时间

指定CDN节点回源时的具体站点

默认情况,将使用OSS的Bucket地址作为HOST地址(本场景示例为***.oss-cn-hangzhou.aliyuncs.com)。

如果源站OSS Bucket绑定了自定义域名(例如,origin.developer.aliyundoc.com),则需要配置回源HOST为自定义域名类型,且HOST值为origin.developer.aliyundoc.com。

配置默认回源HOST

OSS源站资源加密,避免非授权的请求盗刷流量

默认情况下,OSS bucket是可以公开访问的,如果您需要禁止非授权的用户直接访问OSS bucket,您可以配置OSS私有bucket回源功能,这样就只有同账号下的阿里云CDN可以回源到OSS bucket来获取源站的资源。

OSS私有Bucket回源

执行该操作前,需确保OSS上创建的Bucket读写权限为私有。具体操作,请参考设置Bucket ACL

提高CDN节点回源下载文件的效率

开启Range回源功能后,CDN节点请求源站OSS上的大文件时,OSS将按照CDN请求的Range范围返回分片内容,可减少回源流量消耗、减少资源响应时间。

适用于音视频等较大文件的内容分发,不适用于图片小文件等业务,图片业务加速时无需配置。

配置Range回源

提高缓存命中率

提升文件分发效率

开启过滤参数功能后,CDN节点在生成缓存hashkey时会去除URL中?之后的参数,这样客户端在携带不同的参数访问同一个资源文件的时候,都能够命中到同一个缓存文件,有助于提高缓存命中率,减少回源流量。

忽略参数

限制访问CDN资源的用户,禁止其他网站引用您的资源链接

配置Referer黑白名单后,CDN会根据名单识别请求身份,允许或拒绝访问请求。允许访问请求,CDN会返回资源链接;拒绝访问请求,CDN会返回403响应码。

配置Referer防盗链

避免网站资源被恶意盗链,流量被恶意盗刷

开启URL鉴权功能需要源站的服务端配合,服务端需要按照CDN上配置的URL鉴权类型所对应的鉴权算法来生成鉴权URL;CDN上开启URL鉴权功能以后,将只有授权的客户端能够访问CDN上的资源。

配置URL鉴权

相关操作

CDN访问OSS资源

在CDN加速域名的CNAME配置生效后,将被访问文件的读写权限设置为公共读,您便可以通过如下方法访问OSS上的资源:

  • 通过CDN加速域名+文件访问路径的方式访问。例如,当CDN加速域名为aliyundoc.com,需要访问根目录下的文件image_01.jpg时,访问地址为http://aliyundoc.com/image_01.jpg

  • 将客户端中OSS的Bucket域名配置为CDN加速域名,再通过CDN加速域名访问。