文档首页 > > 最佳实践> 通过CDN加速访问OBS> 通过CDN实现OBS文件下载加速

通过CDN实现OBS文件下载加速

分享
更新时间:2020/09/14 GMT+08:00

本章节以某游戏网站的游戏下载、更新业务为例,介绍如何通过华为云CDN实现加速下载存储在OBS中的游戏安装包以及更新包。

场景介绍

某游戏网站目前已购买OBS服务,并存放了大量游戏软件、图片视频等文件在OBS中。随着用户不断增长,游戏下载、图片加载都存在响应较慢的问题,特别是离文件存放区域较远的用户。基于以上诉求,该网站决定采用CDN加速访问OBS方案,以最低成本实现游戏下载加速,提升用户访问体验。

数据准备

表1 数据准备

准备项

说明

示例

网站域名

游戏网站域名。根据中国《互联网管理条例》的要求,此域名必须在工信部已备案并在有效期内才可以使用CDN加速

download.game-apk.com

OBS桶

存放图片、软件包等静态资源的桶,存储类别为“标准存储”,桶策略为“私有”。

game-apk

前提条件

已将网站所需图片、软件包等静态资源存储至已准备的OBS桶中。

如果上述操作还未完成,可通过OBS控制台、OBS Browser+、SDK等多种方式创建桶、上传文件,具体操作请参考各自帮助文档。

配置步骤

  1. (可选)购买CDN回源流量包

    当回源获取数据时,CDN访问OBS会产生回源流量。OBS提供回源流量包,可以减少回源流量产生的流量费用。
    1. 登录华为云控制台,在控制台首页选择“存储 > 对象存储服务 OBS”,进入OBS管理控制台。
    2. 单击页面右上角的“购买资源包”。
    3. 根据实际业务需求配置以下参数。
      • 区域:选择待配置CDN加速的桶所在区域。
      • 资源包类型:选择“回源流量包”。
      • 每月流量:根据每月实际流量使用情况选择合适的规格。
      • 购买数量:输入购买回源流量包的数量。与每月流量结合,以组成不同规格的回源流量包。例如购买2个每月1TB的回源流量包,则实得流量为2TB。
      • 购买时长:选择需要购买的回源流量包时长。
      • 生效时间:根据实际情况选择“支付完成后立即生效”或“指定生效时间”。
    4. 单击“加入清单”。
    5. 在右侧资源包清单中确认资源包信息,单击“立即购买”。

  2. 配置CDN文件下载加速

    OBS支持域名管理功能,在OBS上绑定用户域名即可实现使用自定义域名访问OBS,并可以直接在绑定过程中开启CDN加速,而不用前往CDN开启。
    1. 登录华为云控制台,在控制台首页选择“存储 > 对象存储服务 OBS”,进入OBS管理控制台。
    2. 单击存放软件包的桶名称,此处以“game-apk”为例。
    3. 在左侧导航栏选择“域名管理”,单击“绑定用户域名”。
    4. 在“绑定用户域名”弹框中配置域名及CDN加速等信息,如图1所示。
      • 用户域名:输入游戏网站域名,此处以“download.game-apk.com”为例。
      • CDN加速:开启CDN加速。
      • 业务类型:选择“文件下载加速”。
      图1 绑定用户域名
    5. 单击“确定”。

  3. 配置CNAME

    在OBS绑定用户域名时开启CDN加速后,CDN会自动生成一条CNAME域名。通过在域名服务商处配置CNAME记录,将加速域名以CNAME方式指向CDN服务中对应的CNAME域名,域名解析生效后,该域名的所有请求都将转向CDN节点。本实践中自动生成的CNAME域名为“download.game-apk.com.c.cdnhwc1.com”

    不同DNS服务商的CNAME配置方式不同,此处以华为云云解析服务为例。其他DNS服务商的CNAME配置方法可参考配置CNAME(非华为云DNS)
    1. 登录华为云控制台,在控制台首页选择“网络 > 云解析服务 DNS”,进入云解析服务页面。
    2. 在左侧菜单栏中,选择“域名解析 > 公网解析”,进入公网域名列表页面。
    3. 在待添加记录集的域名所在行,单击“域名”列的域名名称。本实践中对应的域名为“game-apk.com.”
    4. 单击“添加记录集”,进入“添加记录集”页面。
    5. 根据界面提示填写参数配置,参数信息如表2所示。下表中未提到的参数可保持默认值。
      表2 参数说明

      参数

      参数说明

      取值样例

      主机记录

      主机记录指域名前缀。

      download

      类型

      记录集的类型,此处为CNAME类型。

      CNAME-将域名指向另外一个域名

      别名

      用于是否将此记录集关联至云服务资源实例。

      线路类型

      用于DNS服务器在解析域名时,根据访问者的来源,返回对应的服务器IP地址。

      添加解析线路类型时,切记先添加默认线路类型,以保证网站可访问。

      全网默认

      TTL(秒)

      TTL指解析记录在本地DNS服务器的有效缓存时间。如果您的服务地址经常更换,建议TTL值设置相对小些,反之,建议设置相对大些。

      默认为“5分钟”,即300s。

      需指向的域名。

      若没有开启CDN加速,该值为桶访问域名;若开启CDN加速后,该值为CDN分配的CNAME域名。

      download.game-apk.com.c.cdnhwc1.com

    6. 单击“确定”,完成添加。
    7. 验证CNAME配置是否生效。

      打开Windows操作系统中的cmd程序,输入如下指令:

      nslookup -qt=cname 桶绑定的自定义域名

      本实践中桶绑定的自定义域名为“download.game-apk.com”。如果回显CDN分配的CNAME域名,则表示CNAME配置已经生效。

  4. 开启私有桶回源

    由于当前存储软件包的桶为私有桶,需要前往CDN开启私有桶回源,CDN才能从OBS中回源获取数据。

    1. 登录华为云控制台,在控制台首页选择“存储 > CDN”,进入CDN控制台。
    2. 在左侧菜单栏中,选择“域名管理”。
    3. 在域名列表中,单击需要修改的域名或域名所在行的“设置”,进入域名配置页面。本实践中对应的域名为“download.game-apk.com”
    4. 选择“回源配置”页签。
    5. 在私有桶回源配置模块,选择开启私有桶回源配置开关。

      若您账号下的此域名是初次配置OBS私有桶回源,您还需要先对CDN进行云资源委托授权,授权成功后CDN将有权限访问您账号下的OBS私有桶。

      1. (仅初次配置时需要)单击“立即授权”,弹出云资源委托授权对话框。
      2. (仅初次配置时需要)单击“同意授权”,系统将为您在IAM委托中创建名为“CDNAccessPrivateOBS”的委托关系,允许CDN访问您的OBS私有桶。

        请勿删除CDN针对OBS的委托关系,否则会导致CDN无法在回源时从OBS私有桶获取相应资源。

      3. 开启OBS私有桶回源开关。

  5. 配置文件下载URL

    将代码中需要加速下载的文件URL地址配置为:游戏网站域名+文件在OBS桶中的存储路径+文件名称。

    步骤2配置的游戏网站域名download.game-apk.com以及存储在game-apk桶中的game/3.2.1/文件夹下的android.apk文件为例,文件下载URL的配置如下:

    https://download.game-apk.com/game/3.2.1/android.apk

  6. 配置OBS高级桶策略,避免私有桶内对象被匿名用户列举

    开启私有桶回源后,任何匿名用户访问桶的自定义域名(CDN加速域名),均可以成功列举桶根目录中的对象,导致对象列表暴露在公网。因此,还需要配置一条仅允许指定用户列举桶内对象的OBS高级桶策略,规避此问题。

    1. 登录华为云控制台,在控制台首页选择“存储 > 对象存储服务 OBS”,进入OBS管理控制台。
    2. 单击存放软件包的桶名称(即开启了私有桶回源的OBS桶),本例中为“game-apk”
    3. 在左侧导航栏选择“访问权限控制”,单击“高级桶策略”下的“创建桶策略”。
    4. 配置桶策略参数。
      图2 配置桶策略参数
      表3 桶策略参数配置说明

      参数

      说明

      策略模式

      选择“自定义模式”

      效果

      选择“Deny”

      被授权用户

      • 选择“排除 > 当前账号”
      • 用户名:选择允许列举桶内对象的用户。可根据实际业务需要,选择仅允许桶所属账号访问,或允许部分IAM用户访问。

      资源

      选择“包含 > 配置到整个桶”

      动作

      • 包含
      • 动作名称:List*
    5. 单击“确定”,完成桶策略创建。
    6. 登录CDN控制台,在“预热刷新 > 缓存刷新”中,刷新CDN缓存,使桶策略在CDN加速域名生效。

      刷新缓存时选择“URL”类型,输入的URL为配置文件下载URL中添加的文件下载URL,本例中为:

      https://download.game-apk.com/game/3.2.1/android.apk

  7. 验证业务

    待游戏网站重新部署后,登录游戏网站,浏览网页图片、进行游戏下载。

    如果图片可以成功显示、游戏可以成功下载,则表示加速配置成功。

分享:

    相关文档

    相关产品

文档是否有解决您的问题?

提交成功!非常感谢您的反馈,我们会继续努力做到更好!
反馈提交失败,请稍后再试!

*必选

请至少选择或填写一项反馈信息

字符长度不能超过200

提交反馈 取消

如您有其它疑问,您也可以通过华为云社区问答频道来与我们联系探讨

智能客服提问云社区提问