当您需要加速OSS上的静态资源时,可以通过阿里云CDN加速OSS域名,实现静态资源的访问加速。本文详细介绍了通过CDN控制台实现OSS加速的操作流程和应用场景。
客户价值
阿里云OSS可提供低成本的存储,CDN可以实现静态资源加速分发。使用OSS作为CDN的源站,价值和优势如下:
-
用户访问网站资源,全部通过CDN,降低源站压力。
-
使用CDN流量,单价低于直接访问OSS产生的外网流出流量。
-
从距离客户端最近的CDN节点获取资源,减少网络传输距离,保证静态资源传输质量。
技术架构
当OSS作为源站,CDN会将源站的静态资源(静态脚本、图片、音视频等)提前缓存到CDN全球加速节点,用户请求访问或下载资源时,可就近获取CDN节点上已缓存的资源,实现资源加速。
技术架构如下:
业务场景示例
以某网站(域名image.example.com)需要加速OSS图片资源为例,业务需求和相关信息如下:
信息 | 说明 | 场景示例 |
网站域名 | 即加速域名,用来加速的网站。 | image.example.com |
业务类型 | 根据网站资源类型判断。 例如网站图片为主,业务类型为图片小文件。 | 图片小文件 |
加速区域 | 网站访问用户所属地。 | 仅中国内地 |
源站域名 | 加速OSS可用同账号下的OSS Bucket,或选择输入阿里云OSS Bucket的外网域名作为源站。 | ***.oss-cn-hangzhou.aliyuncs.com |
其他服务 | 其他业务需求 |
|
配置流程
基于以上业务场景,下面为您详细介绍使用阿里云CDN加速OSS资源的配置流程。
计费说明
将OSS作为CDN源站时,可能会产生CDN下行流量费用以及OSS流出到CDN流量费用。具体请参见CDN加速OSS计费说明。
步骤一:准备工作
-
已完成阿里云账号注册和实名认证。
-
已开通CDN服务和开通OSS服务。
-
已成功在OSS上创建Bucket并将其读写权限置为私有。具体操作,请参见控制台创建存储空间和Bucket ACL。
说明
私有Bucket可避免非授权的客户端直接访问OSS上的资源,出现盗链问题。
-
您已经拥有用于加速的域名。
步骤二:添加加速域名
-
登录CDN控制台。
-
在左侧导航栏,选择域名管理,单击添加域名,完成以下参数配置(下文以业务场景示例为例)。
说明
-
加速域名:
image.example.com
-
业务类型:图片小文件
-
加速区域:仅中国内地
-
资源分组:默认资源组
-
首次在CDN控制台添加一个新域名时,需要完成域名归属权验证(只需要校验根域名的归属权)。具体操作,请参见验证域名归属权。如果之前已经验证通过根域名的归属权,请忽略。
-
参数具体含义和注意事项,请参见配置基础信息和业务信息。
-
-
单击新增源站信息,配置源站。
源站信息选择OSS域名,并在下方的域名输入框中直接选择同账号下的OSS Bucket,或选择输入阿里云OSS Bucket的外网域名作为源站。其他参数保持默认值即可。本场景示例值为
***.oss-cn-hangzhou.aliyuncs.com
。说明
-
不支持OSS内网域名作为源站。
-
OSS外网域名可前往OSS控制台查看。
-
参数具体含义和注意事项,请参见配置源站。
-
-
完成源站配置后,单击下一步。
-
等待人工审核。
说明
如果您的加速域名无需人工审核,将直接进入下一个配置环节,您可根据实际业务需求,完成推荐配置。
审核通过后,域名状态显示为正常运行,表示添加成功。
-
等到域名状态为正常运行时,会显示加速域名的CNAME值,本场景示例为
image.example.com.w.kunlunsl.com
。
步骤三:配置域名
为了提高加速性能和访问安全,确保用户可以快速并安全地获取以及传输数据,您可以根据业务需求,完成以下配置。
-
在CDN控制台访问域名管理,在域名列表单击目标域名对应的管理。
-
根据业务需求,完成下表中的配置。
场景
描述
配置
提高缓存命中率
合理配置缓存过期时间,可有效提高缓存命中率:
配置缓存过期时间
指定CDN节点回源时的具体站点
默认情况,将使用OSS的Bucket地址作为HOST地址(本场景示例为
***.oss-cn-hangzhou.aliyuncs.com
)。如果源站OSS Bucket绑定了自定义域名(例如,
origin.developer.aliyundoc.com
),则需要配置回源HOST为自定义域名类型,且HOST值为origin.developer.aliyundoc.com
。详细配置,请参见配置默认回源HOST。配置默认回源HOST
OSS源站资源加密,避免非授权的请求盗刷流量
默认情况下,OSS bucket是可以公开访问的,如果您需要禁止非授权的用户直接访问OSS bucket,您可以配置OSS私有bucket回源功能,这样就只有同账号下的阿里云CDN可以回源到OSS bucket来获取源站的资源。
OSS私有Bucket回源
说明
执行该操作前,需确保OSS上创建的Bucket读写权限为私有。具体操作,请参考修改存储空间读写权限。
提高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鉴权
-
提高缓存命中率
-
提升文件分发效率
-
不常更新的静态文件(例如,图片类型、应用下载类型等),建议设置1个月以上。
-
频繁更新的静态文件(例如,JS、CSS等),根据实际业务情况设置。
-
动态文件(例如,PHP、JSP、ASP等),建议设置为0s,即不缓存。
-
步骤四:配置CNAME
您需要在域名解析服务商处将加速域名的DNS解析记录指向CNAME域名,访问请求才能转发到CDN节点上,实现CDN加速。
以DNS解析服务商是阿里云为例,为您介绍CNAME配置方法。
说明
具体操作和其他配置方式,请参见配置CNAME。
-
使用加速域名所在的阿里云账号,前往云解析DNS控制台的域名解析。
-
在域名解析页,找到加速域名的根域名(example.com),在域名右侧单击解析设置。
-
单击添加记录,添加CNAME记录。
-
记录类型:CNAME
-
主机记录:
image
-
记录值:输入之前在域名列表页面上查到的CNAME值
image.example.com.w.kunlunsl.com
-
其他参数保持默认值即可。
-
-
可选:验证CNAME配置是否生效。
-
方法一:一键验证
-
方法二:通过ping命令验证
-
打开Windows操作系统中的cmd程序。
-
在命令行中ping加速域名,如果返回的解析结果和CDN控制台上该加速域名的CNAME值一致,则表示CDN加速已经生效。
-
前往阿里云CDN控制台的域名管理列表。
-
选择目标域名,将鼠标指向加速域名的CNAME状态处,弹出CNAME配置向导弹框。
-
单击打开配置向导后,再单击点击查询,一键验证。
-
后续步骤
在您将OSS上的bucket配置为私有以后,如果您直接使用OSS的bucket地址访问OSS上的资源,则会提示错误AccessDenied。在CDN加速域名的CNAME配置生效后,再将被访问文件的读写权限设置为公共读,您便可以通过如下方法访问OSS上的资源:
-
通过CDN加速域名+文件访问路径的方式访问。例如,当CDN加速域名为
aliyundoc.com
,需要访问根目录下的文件image_01.jpg时,访问地址为http://aliyundoc.com/image_01.jpg
。 -
将客户端中OSS的Bucket域名配置为CDN加速域名,再通过CDN加速域名访问。