在收到一个本地同事技术问题求助后,进行了 CDN加速 + OBS静态站回源测试,本文记录解释下加速域名(acceleration domain)、源站地址(origin server)、源站Host(Host)几个概念,同时也下测试发现的有意思的问题点。

一、4个地址2个别名

huaweicloud cdn obs

先看上面的这张图,这张图很清晰的解释了4个域名地址和2个别名之间的关系,以及加速域名(acceleration domain)、源站地址(origin server)、源站Host(Host)三个概念,这里分开进行解释。

静态网站托管

其实就是将静态网站放到对象存储桶里可以通过绑定域名进行访问,这里配置公共桶和私有桶都没有关系,只给给了公共读的权限就可以了,配置也相对比较简单,官方文档写的已经比较全了。而且我之前已经记录过关于腾讯COS桶配置静态站的方法,方法大同小异。

  1. 这里需要注意一点:基于安全合规要求,OBS禁止通过默认域名(桶访问域名或静态网站访问域名)使用静态网站托管功能。即在生效时间点后创建的桶,使用上述域名从浏览器访问网页类型文件时,不会显示对象内容。

所以这里一定要绑定自定义域名,将自定义域名通过CNAME记录指向桶的域名地址,不然网页访问就会变成下载样式。

huaweicloud static site

  1. 第二点:静态站是支持简单的重定向规则配置的,无法针对/根进行设置,对应的子目录和文件是没问题的,可以实现类似 301 这样的跳转效果。这里特别说明是本地同事的求助和这个相关,后面再单独拿篇幅记录。

CDN回源配置

huaweicloud cdn obs hostheader

CDN回源这里当我们选择OBS桶域名进行配置时,为什么回源Host要选用自定义静态站域名呢?我们先回到静态网站托管,当我们配置了自定义域名后,访问静态站首页时可以直接显示相关内容,查看对应的头请求信息,这里可以看到 host header 信息。所以在CDN里如果不配置这个地址就会出现像直接使用桶默认域名访问的效果一样,出现下载文件的情况,而不是html文件的内容,通过curl指令访问是没有问题的。

huaweicloud obs hostheader

由于之前配置的错误,这里配置完成后还有可能会出现访问出现下载的情况,可以通过 CDN –> 预热刷新 –> 缓存刷新对缓存页面进行强制刷新,这样就可以正常访问了。

二、奇怪的 header 头信息

huaweicloud-stranger-headers

这是什么鬼?世界是一个草台班子,我啥也不说了,后面云平台上提个工单问下华为产品研发人员吧,我一年提这么多问题,华为研发是不是应该给我一个啄木鸟奖!!哈哈