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

前提条件

若您的Bucket在中国内地,绑定的域名需在中国工信部 备案

背景信息

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

操作步骤

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

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

    5. 单击提交
  2. 配置CDN加速服务。
    1. 在域名列表中,单击目标域名右侧的未配置
    2. 添加域名页面,配置各项参数。配置详情,请参见添加加速域名
    3. 单击下一步,然后单击返回域名列表
    4. 在域名列表中,记录目标域名的CNAME值。
  3. 添加CNAME记录。
    若您的域名为非阿里云托管的域名,需在对应的域名解析商处配置云解析。 如腾讯云解析(原DNSPod)或新网添加CNAME的步骤,请参见DNSPod配置CNAME流程新网配置CNAME流程此处以阿里云托管的域名为例,添加CNAME记录步骤如下:
    1. 登录云解析DNS控制台
    2. 单击域名解析,然后在域名解析列表中,单击目标域名右侧的解析设置
    3. 单击添加记录,填写域名解析信息。
      参数 说明
      记录类型 选择域名指向的类型。 此处选择CNAME
      主机记录 根据域名前缀填写主机记录。
      • 如果是顶级域名,例如aliyun.com,输入@
      • 如果是二级域名,输入二级域名的前缀。例如域名为abc.aliyun.com,输入abc
      • 如果需要所有的二级域名都指向Bucket外网访问域名,输入*
      解析线路 解析域名时使用的线路。 建议选择默认,系统将自动选择最佳线路。
      记录值 填写步骤2中记录的CNAME值。
      TTL 域名的更新周期,保留默认值即可。
    4. 单击确定
      新增CNAME记录实时生效,修改CNAME记录最多72小时生效。
  4. 开启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加速域名会出现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的默认首页?

更多参考