当您需要加速OSS上的静态资源时,可以通过阿里云CDN加速OSS域名,实现静态资源的访问加速。通过本文您可以详细了解CDN加速OSS的应用场景,以及通过OSS控制台实现CDN加速OSS的操作方法。

前提条件

背景信息

OSS源站上存储的静态资源包括静态脚本、图片、附件、音频和视频。当终端用户请求访问或下载静态资源时,CDN对OSS源站上的静态资源进行加速,将源站上的资源缓存到CDN加速节点上,系统自动调用离终端用户最近的CDN节点上已缓存的资源,实现资源加速。CDN加速OSS的架构图如下所示。场景图
OSS作为CDN的源站,通过CDN加速分发,用户通过CDN节点就近获得资源,架构优势如下:
  • 用户访问网站资源,全部通过CDN,降低源站压力。
  • 使用CDN流量,单价低于直接访问OSS产生的外网流出流量。
  • 从距离客户端最近的CDN节点获取资源,减少网络传输距离,保证静态资源传输质量。

操作步骤

CDN加速OSS配置流程 02
  1. 在OSS控制台上,绑定自定义域名。
    1. 登录OSS管理控制台
    2. 单击Bucket列表,之后单击目标Bucket名称。
    3. 选择传输管理 > 域名管理
    4. 单击绑定域名,在绑定域名面板的域名文本框填写您的域名。
      请勿打开自动添加CNAME开关。

      若提示域名冲突,表示该域名已绑定至其他Bucket。此时,您可以更换域名或通过验证域名所有权强制绑定域名。验证域名所有权会解除域名与其他Bucket的绑定关系。更多信息,请参见验证域名所有权

    5. 单击提交
  2. 在OSS控制台上,配置CDN加速服务。
    1. 在域名列表中,找到需要配置CDN加速的域名。
    2. 单击目标域名右侧的未配置,系统自动跳转到CDN管理控制台。
      未配置
  3. 在CDN控制台上,添加OSS域名。
    1. 登录CDN控制台
    2. 在左侧导航栏,单击域名管理
    3. 域名管理页面,单击添加域名
    4. 添加域名页面,完成以下配置。

      第一部分:配置基本信息

      china
      参数 说明
      加速域名
      • 域名类型:子域名(例如,example.aliyundoc.com)或泛域名(例如,*.aliyundoc.com)。
      • 格式:仅支持全英文小写,不支持中文。
        注意

        如果域名包含中文(例如:阿里云.网址),请以中文形式进行相关备案,再通过第三方工具punnycode将中文域名转换成为英文域名(例如:xn--fiq****.xn--eq****)后填入。

      • 泛域名要求:请参见泛域名加速规则
        注意
        • 泛域名和子域名必须在同一个账号下,否则添加域名时系统会报错。如果您无法自行解决,请提交工单处理。
        • 如果泛域名未被添加到任何CDN账号下,则支持在多个账号下添加不同的子域名。
      • 加速域名不允许重复添加。

        如果出现域名已被添加到其他云产品(例如视频点播、全站加速等)的提示,您可以通过自助工具申诉。

      • 每个阿里云账号最多可以添加50个加速域名。

        如果您域名的总带宽日均峰值大于50 Mbps,且业务无风险,可提交工单申请增加域名个数。

      • 加速内容必须合法且符合CDN业务规范。详细信息,请参见使用限制
      业务类型
      注意 配置后不允许修改,需谨慎选择。
      • 图片小文件:适用于电商类、网站类、游戏图片类等小型的静态资源加速场景。
      • 大文件下载:适用于大于20 MB的静态文件加速场景。
      • 视音频点播:适用于音频或视频文件加速场景。
      • 全站加速:适用于含有大量动态和静态内容混合,且多为动态资源请求的加速场景。

        当业务类型选择全站加速时,您需根据界面提示,前往全站加速控制台添加域名并进行相关配置。具体操作,请参见添加加速域名

      加速区域
      • 仅中国内地:全球用户访问均会调度至中国内地加速节点进行服务(海外用户的访问流量将会被调度至华东电信的CDN节点)。
      • 全球:全球用户访问将会择优调度至最近的加速节点进行服务。
      • 全球(不包含中国内地):全球用户访问均会调度至中国香港、中国澳门、中国台湾以及其他国家和地区的加速节点进行服务(中国内地用户将会被调度至日本、新加坡和中国香港的CDN节点)。
      注意
      • 加速区域为仅中国内地全球时,加速域名必须备案,您可以登录阿里云ICP代备案管理系统完成备案。由于工信部备案系统存在数据延迟,刚完成备案的域名请在8小时后再配置。
      • 不同的加速区域价格不一样,请根据您的实际需求选择。计费详情,请参见CDN定价
      资源分组 选择默认资源组或您自己创建的资源组。创建新的资源组,请参见创建资源组
      第二部分:配置源站信息配置源站信息
      参数 说明
      源站信息 选择OSS域名,并选择您在OSS控制台上绑定的自定义域名。为Bucket绑定自定义域名的方法,请参见绑定自定义域名
      优先级

      支持设置主备,主优先级大于备优先级。用户请求通过阿里云CDN回源时,会优先回源到优先级为主的源站地址。

      例如,有A、B两个源站,A源站的优先级为主,B源站的优先级为备,则用户请求通过阿里云CDN回源时会优先回源到A源站,如果A源站出现故障,将会回源到B源站,当A源站恢复正常后会从B源站切换回A源站。

      权重
      当多个源站的优先级相同时,阿里云CDN会按照源站的权重分配用户请求回源到不同源站的比例,实现按权重的负载均衡。您可以根据业务需求,自行设置权限值。
      • 取值范围:1~100,数值越大,源站分配到的用户请求比例越高。
      • 默认值:10。

      示例:有A、B两个源站,两个源站的优先级都是主,A源站的权重为80,B源站的权重为20,则用户请求将会按照8:2的比例在A、B两个源站之间分配。

      端口
      即,CDN节点回到源站哪个端口请求资源。默认为80,根据您源站的支持情况,可自定义设置回源端口,允许设置的端口范围为1~65535。
      • 默认值:80。
      • 端口值为443时,以HTTPS协议回源;80或其他自定义端口,以HTTP协议回源。
      说明
      • 如果需要以HTTPS协议回源到其他自定义端口,请提交工单申请。
      • 如果配置了回源协议功能(默认为关闭状态),这里配置的端口会失效。关闭回源协议的方法,请参见配置回源协议
      • 当源站选择OSS域名时,回源端口是否支持自定义端口,取决于OSS产品。
    5. 完成源站配置后,单击下一步
    6. 可选:首次在CDN控制台添加一个新域名时,需要完成域名归属权验证。
      说明 具体操作,请参见验证域名归属权。如果之前已经验证通过,请忽略该步骤。
    7. 等待人工审核。
      说明 如果您的加速域名无需人工审核,将直接进入下一个配置环节,您可根据实际业务需求,完成推荐配置。

      审核时间约1~2个工作日,您也可以提交工单加急审核。

    审核通过后,域名状态显示为正常运行,表示添加成功。

  4. 前往阿里云CDN控制台的域名管理列表,复制加速域名对应的CNAME记录值。
    域名管理
  5. 在阿里云云解析DNS控制台上,配置CNAME。
    本文以阿里云云解析DNS为例,为您介绍配置CNAME的方法。
    1. 使用加速域名所在的阿里云账号,登录云解析DNS控制台
    2. 可选:(非阿里云注册的域名)在云解析控制台添加域名。
      说明 非阿里云注册的域名,需要先在云解析控制台完成域名添加,才能进行域名解析设置。具体操作,请参见添加域名。如果您的域名是在阿里云注册的,请跳过该步骤。
    3. 域名解析页面,找到您的域名,在域名右侧单击解析设置
    4. 单击添加记录,添加CNAME记录。
      说明
      • 精准域名的CNAME解析优先级大于泛域名的CNAME解析。如果您的加速域名为泛域名,且主机记录设置为星号(*)时,需删除泛域名下所有已生效的二级域名的解析记录。
      • 添加CNAME记录时如果遇到冲突问题,建议您更换一个加速域名或调整冲突的记录。详细信息,请参见解析记录冲突规则
      添加记录
      参数 说明 填写样例
      记录类型 选择CNAME。 CNAME
      主机记录
      • 加速域名为根域名时,主机记录为@
      • 加速域名为泛域名的情况下,主机记录为*
      • 加速域名为子域名的情况下,主机记录为子域名的前缀。

      关于子域名的解释,您可以参考域名基本概念

      • 根域名示例
        • 加速域名为aliyundoc.com,主机记录为@
        • 加速域名为aliyundoc.com.cn,主机记录为@
      • 泛域名示例
        • 加速域名为.aliyundoc.com,主机记录为*
        • 加速域名为.aliyundoc.com.cn,主机记录为*
        • 加速域名为*.example.aliyundoc.com,主机记录为*.example
        • 加速域名为*.example.aliyundoc.com.cn,主机记录为*.example
      • 子域名示例
        • 加速域名为example.aliyundoc.com,主机记录为example
        • 加速域名为example.aliyundoc.com.cn,主机记录为example
        • 加速域名为www.example.aliyundoc.com,主机记录为www.example
        • 加速域名为www.example.aliyundoc.com.cn,主机记录为www.example
      说明 后缀为“.com.cn”的加速域名为顶级域名带两层后缀示例。
      解析线路 默认线路。 推荐保持默认
      记录值
      输入加速域名对应的CNAME记录值。
      说明 一个加速域名对应一个CNAME记录值,二级域名不能使用主域名的CNAME记录值。如果您要加速二级域名,需要将二级域名也添加到CDN上并解析到对应的CNAME记录值,或者在CDN上添加泛域名,泛域名的CNAME可以被二级域名使用。添加泛域名或二级域名,请参见添加加速域名
      www.example.com.w.kunlunsl.com
      TTL TTL为缓存时间,数值越小,修改记录后各地生效时间越快,默认为10分钟。 推荐保持默认
    5. 单击确认,完成添加。
      云解析DNS上新增CNAME记录实时生效,修改CNAME记录在10分钟后生效(具体生效时间长短取决于域名DNS解析配置的TTL时长,10分钟为TTL的默认时长),在这期间内CDN控制台的域名列表中可能仍显示“未配置CNAME”,请先忽略。
  6. 在本地PC机上,验证CNAME配置是否生效。
    • 方法一:一键验证
      1. 前往阿里云CDN控制台的域名管理列表
      2. 选择目标域名,将鼠标指向加速域名的CNAME状态处,弹出CNAME配置向导弹框。
      3. 单击打开配置向导后,再单击点击查询,一键验证。
    • 方法二:通过ping命令验证
      1. 打开Windows操作系统中的cmd程序。
      2. 在命令行中ping加速域名,如果返回的解析结果和CDN控制台上该加速域名的CNAME值一致,则表示CDN加速已经生效。CNAME生效验证
  7. 在OSS控制台上,开启CDN缓存自动刷新。
    说明 执行本操作后如果Object有更新,OSS会自动将更新后的Object刷新到CDN的缓存节点上,实现文件更新后实时刷新缓存的功能。当您解除Bucket与用户域名之间的绑定关系后,OSS控制台将不支持CDN缓存自动刷新操作,您可以在CDN控制台进行配置。操作方法,请参见刷新资源
    1. 登录OSS管理控制台
    2. 在左侧导航栏,单击Bucket列表
    3. Bucket列表中,单击目标Bucket名称。
    4. 选择传输管理 > 域名管理
    5. 域名管理页签,打开加速域名的CDN缓存自动刷新开关。
      域名管理

后续步骤

CNAME配置生效后,如果您直接通过CDN加速域名访问OSS上的资源,则会提示错误AccessDenied,可以通过如下方法访问OSS资源:
  • 通过网页访问OSS资源

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

  • 通过客户端访问OSS资源

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