CDN加速OSS常见问题

本文为您介绍CDN加速OSS场景下的常见问题。

如何校验已成功使用CDN加速OSS?

第一步:检查CNAME记录

  1. 以阿里云DNS为例,登录DNS管理控制台,选择域名解析,单击域名右侧的解析设置

  2. 查看CDN加速域名(如:oss.example.com)对应的CNAME记录(如oss.example.com.w.kunlunaq.com)是否成功添加。image

第二步:通过nslookup命令验证域名是否指向了CDN节点

  1. 打开cmd程序(Windows)、终端(macOS/Linux)。

  2. 输入nslookup -type=CNAME 加速域名,如果返回的解析结果和CDN控制台上该加速域名的CNAME值一致,则表示CDN加速已经生效。image

说明

如果您还未配置CNAME,请参考:配置CNAME

OSS私有Bucket如何使用CDN加速?

如果加速域名的源站为私有Bucket,请您给加速域名开启OSS私有Bucket回源,实现通过CDN加速OSS私有Bucket资源。操作步骤请参考:开启OSS私有Bucket回源

说明

开启了私有Bucket回源功能之后,您可以通过CDN加速域名访问您的私有Bucket内的所有资源,原URL的私有鉴权方式将失效,您可以配合使用阿里云CDN提供的Referer防盗链功能、URL鉴权功能,来更有效地保护您的资源不被盗刷,更多信息,请参见配置Referer防盗链配置URL鉴权

CDN加速OSS场景下,如何部署HTTPS证书?

CDN加速OSS场景下,您仅需要在CDN上部署HTTPS证书,详情请参见:配置HTTPS证书

说明

如果您的证书在阿里云数字证书管理服务(原SSL证书)产品中管理,也可以通过数字证书管理服务控制台部署。详情请参见:部署SSL证书到阿里云产品

CDN加速OSS私有Bucket场景下,如何使用OSS静态页面托管功能?

如果您已经配置了OSS静态页面托管功能,且首页指定的文件(如:index.html)或Bucket为权限为私有,您需要开启OSS私有Bucket回源

image

问题现象

此时访问CDN加速域名时报错You don't have permission to access the URL on this serverYou are forbidden to list buckets

image

问题原因

OSS的Bucket在配置静态网站托管是,需要配置域名的默认首页为指定文件(如index.html),使用匿名身份访问网站域名(例如:https://example.com/)的时候会自动解析到默认首页(例如:https://example.com/index.html)。但CDN开启OSS私有Bucket回源功能后,访问CDN加速域名产生的回源OSS请求相当于非匿名身份发起的根目录访问请求,而该请求默认会被OSS拒绝。

解决方案

您可在CDN中配置URL重写规则,将访问URL重写为指向配置的首页文件(如:index.html),CDN节点将通过302重定向的方式使客户端请求index.html的内容,实现静态首页托管功能,详细配置请参见重写访问URL

配置方法:待改写的Path配置为^/$,目标Path配置为/index.html,执行规则选择Redirect

image

CDN加速OSS场景下,如何配置跨域共享、防盗链等功能?

如果您通过CDN加速域名对外提供服务,请在CDN上配置Referer防盗链、URL鉴权等访问控制功能,以保护您的资源,更多信息请参见:访问控制

跨域共享等功能也需要在CDN侧配置,详细配置参见:配置跨域资源共享

CDN加速OSS场景下,为什么开启CDN后感觉访问更慢了?

CDN加速OSS场景下,客户端使用加速域名访问资源时,首次访问时请求先到达CDN节点,由于此时CDN节点还未缓存资源,CDN节点将访问OSS获取资源,并缓存资源至CDN节点,后续对该资源的请求将从CDN节点直接返回给客户端。因此第一次访问时,可能比未配置CDN加速时慢。

您可通过CDN的预热功能,使OSS主动将对应的资源缓存至CDN节点,当客户端首次请求资源时,即可直接从CDN节点获取到最新的资源,无需再回源站获取,操作步骤请参见:手动预热资源

CDN回源OSS频率高,如何设置缓存策略?

如果您未配置缓存过期时间或配置的缓存时间不合理,可能会导致高频的CDN回源操作,增加回源至OSS的流量及相关费用(OSS产品计费项中的CDN 回源流出流量),并可能降低访问速度。您可以根据业务实际情况配置缓存过期时间:

  • 不常更新的静态文件(例如,图片类型、应用下载类型等),建议设置1个月以上。

  • 频繁更新的静态文件(例如,JS、CSS等),根据实际业务情况设置。

更多信息请参见:配置缓存过期时间

CDN加速OSS场景下,OSS文件刷新后,如何确保用户访问到最新的资源?

您在 OSS 对文件进行修改后,如果希望 CDN 节点缓存可以自动刷新,提供给客户访问修改后的内容,可以在OSS控制台开启CDN缓存自动刷新。配置请参见:CDN访问加速中“开启CDN缓存自动刷新”部分。

说明

此功能不保证一定能成功提交刷新任务,也不保证刷新任务提交的及时性。如果对时效性有要求或需要了解刷新结果,可以使用CDN的刷新功能,参见刷新和预热资源

OSS控制台上无法开启CDN自动刷新,需要在OSS绑定域名后才能使用,如何解决?

问题现象

无法开启CDN缓存自动刷新,提示“请先在OSS上绑定该域名”。

image

解决方案

单击OSS 域名绑定列对应域名的未绑定,根据界面提示绑定域名即可。

说明

如果您已经绑定CDN且DNS已解析到CDN的CNAME域名,绑定OSS域名后请不要修改DNS解析,否则将无法继续使用CDN加速服务。

使用CDN加速OSS后,OSS图片处理的参数为什么不生效?

CDN加速OSS场景下,请求先到达CDN节点,如果CDN开启了忽略参数功能,CDN节点在处理用户请求时,会去除请求URL中携带在?之后的参数,如果资源已缓存,则不会返回OSS获取资源,此时OSS图片处理将无法生效。更多信息请参考:忽略参数

您可以关闭CDN的忽略参数功能,当用户请求携带参数时,将触发回源OSS,此时OSS图片处理将可以正常生效。

说明

关闭忽略参数后,由于携带参数的请求均会触发回源,缓存命中率可能会降低,您也可以通过CDN提供的图片处理功能,在CDN节点上完成图片处理。