用户直接访问OSS资源,访问速度会受到OSS的下行带宽以及Bucket地域的限制。如果通过CDN来访问OSS资源,带宽上限更高,并且可以将OSS的资源缓存至就近的CDN节点,通过CDN节点进行分发,访问速度更快,且费用更低。本文介绍如何使用CDN来加速OSS的访问。
背景信息
传统网站架构下,动态资源和静态资源不分离,随着访问量的增长,性能会成为瓶颈,如下图所示:
如果采用动静分离的网站架构,就能够解决海量用户访问的性能瓶颈问题,如下图所示:
该架构的要点如下:
将动态资源如Web程序、数据库等存放在云服务器ECS上。
将静态资源如图片、音视频、静态脚本等存放在对象存储OSS上。
将OSS作为CDN的源站,通过CDN加速分发,使用户通过CDN节点就近获得文件。
该架构有以下优势:
降低了Web服务器负载。
OSS的资源缓存至就近的CDN节点,通过CDN节点进行分发,缩短了网络传输距离,加快了用户的调用速度。
支持海量存储。
OSS的存储空间弹性无限扩展,您无需考虑存储架构升级。
降低了存储费用和流量费用。
使用该架构会产生OSS的存储费用、CDN的下行流量费用,以及极少量的回源流量费用。其中OSS的存储费用仅为ECS云盘费用的一半,而CDN流量的单价约为OSS外网流量单价的30%~40%。
前提条件
操作步骤
以下步骤以域名example.com为例,加速域名以oss.example.com为例。您可以根据自己的实际情况来选择加速域名,包括主域名、二级域名、泛域名等。
添加域名。
登录全站加速控制台,选择域名管理。
单击添加域名,设置以下参数:
加速域名:输入加速域名,该示例为oss.example.com。
业务类型:选择动态加速。
源站信息:选择OSS域名,然后选择需要加速的OSS域名(即之前创建的OSS Bucket对应的域名)、端口、以及加速区域,如下图所示。
单击下一步,然后单击返回域名列表。
等到域名状态为正常运行时,复制CNAME值,该示例为oss.example.com.w.kunluncan.com。
解析域名。
进入域名控制台,找到域名example.com,单击解析。
在添加记录页面,配置以下参数:
记录类型:选择CNAME。
主机记录:输入oss。
记录值:输入之前复制的CNAME值oss.example.com.w.kunluncan.com。
其他参数:保留默认值。
单击确定。等待几分钟后,使用ping命令查看加速域名是否生效。下图表示已生效。
开启CDN缓存自动刷新。
进入OSS控制台,单击左侧导航栏的Bucket列表,然后选择对应的Bucket。
选择传输管理,然后选择域名管理。
开启加速域名对应的CDN缓存自动刷新。
查看文件的URL。
进入OSS控制台,单击左侧导航栏的Bucket列表,然后选择对应的Bucket。
进入文件管理,然后单击文件对应的详情,进入文件的详情页面。
在文件的详情页面,从自有域名列表中选择加速域名,该示例为oss.example.com。可以看到文件的URL已经变为加速域名开头的URL。
直接访问上述的URL,通过开发者工具检查可以发现,CDN已经生效并成功缓存了这张图片。
使文件的URL长期有效。
在文件的详情页面,单击设置读写权限。
选择公共读,然后单击确定。
(可选)配置证书加密访问。