对象存储OSS与阿里云CDN服务结合,可将OSS内的文件缓存到CDN的边缘节点。当大量终端用户重复访问同一文件时,可以直接从边缘节点获取已缓存的数据,提高访问的响应速度。

前提条件

如果您的Bucket在中国内地,绑定的域名需在中国工信部 什么是ICP备案

背景信息

OSS结合CDN加速服务使用时,会产生CDN流出流量费用、CDN回源流出流量费用、请求费用。
说明 建议您在上传加速、非静态热点文件下载加速等场景中使用OSS传输加速功能。更多信息,请参见 传输加速

使用OSS控制台

  1. 登录OSS管理控制台
  2. 单击Bucket列表,然后单击目标Bucket名称。
  3. 在左侧导航栏,选择Bucket配置 > 域名管理
  4. 域名管理页面,单击绑定域名
  5. 绑定域名面板,输入要绑定的域名
    绑定的域名不支持泛域名,例如 *.example.com
    • 提示验证域名所有权并绑定

      表明当前域名未绑定过任意Bucket或者已被绑定至其他账号下的Bucket。您可以按以下步骤绑定当前域名:

      以当前域名为阿里云托管的域名(example.com)为例:

      1. 添加TXT记录。
        1. 登录云解析DNS控制台
        2. 在域名解析列表中,单击目标域名右侧的解析设置
        3. 解析设置页面,单击添加记录
        4. 添加记录面板,按以下说明填写各项参数,其他参数保留默认配置,然后单击确认
          参数 说明
          记录类型 选择TXT
          主机记录 填写_dnsauth.example.com
          记录值 填写OSS控制台返回的CnameToken值。
        5. 在OSS管理控制台的绑定域名面板,单击验证域名所有权并绑定
          说明 验证域名所有权可能需要等待几分钟后生效。
      2. 配置CDN加速服务。
        1. 在域名列表中,单击目标域名右侧的未配置
        2. 添加域名页面,配置各项参数。配置详情,请参见添加加速域名
        3. 单击下一步,然后单击返回域名列表
        4. 在域名列表中,记录目标域名的CNAME值。
      3. 添加CNAME记录。

        成功绑定域名后,您需要在域名解析服务商处将当前绑定域名的DNS解析记录指向CDN加速域名,确保使用绑定域名访问时请求会被正确转发。

        1. 登录云解析DNS控制台
        2. 在域名解析列表中,单击目标域名右侧的解析设置
        3. 解析设置页面,单击添加记录,然后填写域名解析信息。
          参数 说明
          记录类型 选择域名指向的类型。 此处选择CNAME
          主机记录 根据域名前缀填写主机记录。
          • 如果是顶级域名,例如aliyun.com,输入@
          • 如果是二级域名,输入二级域名的前缀。例如域名为abc.aliyun.com,输入abc
          • 如果需要所有的二级域名都指向Bucket外网访问域名,输入*
          解析线路 解析域名时使用的线路。 建议选择默认,系统将自动选择最佳线路。
          记录值 填写配置CDN加速服务步骤中记录的CNAME值。
          TTL 域名的更新周期,保留默认值即可。
        4. 单击确定
    • 提示当前域名已被绑定到当前账号下的某个Bucket

      您可以通过以下两种方式将域名绑定至当前Bucket。

      • 更换域名。
      • 将当前域名从已绑定Bucket中解除绑定,然后重新绑定至当前Bucket。

        关于解除域名绑定的具体步骤,请参见解除域名绑定

  6. 开启CDN缓存自动刷新。
    域名管理页签,打开目标域名右侧的 CDN缓存自动刷新开关。
    您希望针对指定操作触发CDN缓存自动刷新,可以单击目标域名右侧 支持的操作,然后选中指定操作类型。支持的操作类型如下:
    参数 说明
    PutObject 通过PutObject接口上传文件。更多信息,请参见简单上传
    PostObject 通过PostObject接口上传文件。更多信息,请参见表单上传
    CopyObject 通过CopyObject接口修改文件。更多信息,请参见拷贝文件
    AppendObject 通过AppendObject接口上传文件。更多信息,请参见追加上传
    CompleteMultipartUpload 通过分片上传或断点续传上传文件。更多信息,清参见分片上传
    DeleteObject 通过DeleteObject接口删除文件。更多信息,请参见删除文件
    DeleteObjects 通过DeleteMultipleObjects接口删除文件。更多信息,请参见删除文件
    PutObjectACL 通过PutObjectACL接口修改文件的权限控制。更多信息,请参见Object ACL

    由生命周期触发的对象过期(Expire)、类型转换(TransitionStorageClass)操作不再支持CDN缓存刷新。使用CDN缓存自动刷新时有如下注意事项:

    • CDN缓存自动刷新功能提交的刷新URL为CNAME/ObjectName,不会刷新带请求参数的URL(图片处理、视频截帧等)。例如Bucket绑定的加速域名为example.com,当您更新Bucket根目录的a.jpg文件,则访问example/a.jpg可以获取最近一次更新的文件;访问example.com/a.jpg?x-oss-process=image/w_100可能获取的还是旧文件。
    • CDN缓存自动刷新功能不保证一定能成功提交刷新任务,也不保证刷新任务提交的及时性。
    • CDN缓存自动刷新功能仅支持少量文件的更新提交刷新任务。如果有大量文件的更新操作,可能会触发流控丢弃部分刷新任务。
    重要 对页面或者有大量文件更新需求的用户,建议直接调用 RefreshObjectCaches刷新节点上的文件内容。

常见问题

是否支持关闭CDN缓存自动刷新?

支持。您可以通过以下步骤关闭CDN缓存自动刷新。

  1. 单击目标域名右侧的支持的操作
  2. 删除已选择的所有操作。
  3. 单击确定

为什么访问已绑定的阿里云CDN加速域名会出现AccessDenied错误?

绑定域名后,您可以使用域名加上具体的资源路径来访问OSS上的资源,例如http://example.com/test/1.jpg。如果您直接访问该域名,例如http://example.com,则会出现AccessDenied错误。

已完成阿里云CDN加速服务的配置,为什么刷新OSS控制台的域名管理页签会出现CDN服务已配置和未配置交替出现的情况?

阿里云CDN服务配置完成后约10分钟才会生效,所以您在域名管理页签查看CDN服务配置状态时会出现以上情况,建议您等待10分钟后刷新页面查看。

CDN回源到OSS时,如何隐藏OSS返回的报错信息?

关于该问题的解决方法,请参见CDN回源到OSS时,如何隐藏OSS返回的报错信息?

为什么CDN回源私有Bucket时,不支持访问Bucket的默认首页?

关于该问题的原因及解决方法,请参见为什么CDN回源私有Bucket时,不支持访问Bucket的默认首页?

更多参考

  • 如果您希望使用HTTPS的方式访问CDN加速域名,请进行证书托管。具体操作,请参见证书托管
  • 如果您开启了CDN加速,并且需要进行跨域CORS访问,您需要在CDN控制台配置跨域规则。具体操作,请参见CDN如何配置跨域资源共享(CORS)
  • 如果您开启了CDN加速,并且需要配置防盗链,你需要在CDN控制台配置防盗链规则。具体操作,请参见配置Referer防盗链
  • 有关OSS结合CDN加速服务的更多介绍,请参见使用CDN加速OSS访问