接入背景
作为web站点,开启cdn加速对提升用户体验十分重要,能有效减少由于物理地域的距离导致的网络延迟,当然主要是增对静态资源。 另外还可以给我们提升网站的可用性,由于前端每次发布更新后,资源的hash值都会更新, 导致发布正在访问的页面无法拉取已经更新静态资源,从而导致当前页面无响应。
开通原因如下:
- 提高web站点的体验(缩短跨地域访问的访问网络延迟)
- 提供web站点的可用性。
接入cdn
接入腾讯云cdn配置从零配置cdn
我遇到的问题
我们当前的访问路径如下:
client -> WAF(web应用防火墙) -> 内网网关 -> tke(k8s)
其中,实际访问的域名 cname 到 waf 提供的vip域名。
接入CDN后路径如下:
client -> CDN -> WAF(web应用防火墙) -> 内网网关 -> tke(k8s)
变更,域名的cname 到 CDN提供的vip域名,CDN回源配置到原来 waf的vip域名。
注意:
- 先配置部署好域名后,再去配置dns 解析到cname,cdn未部署到站点不可用
- 如果waf上使用了https证书,需要在cdn上配置先配置好证书
- 在cdn的基础配置中,主源站需要配置回源协议,这里需要根据waf是否使用了https证书,使用的话需要配置与waf的证书一致,并选择正确的回源协议。
在接入cdn过程中遇到几个问题
无法通过来源IP来限制访问
配置cdn之前我们的站点有多套环境,不同的环境有不同的对外开放权限,我们通过WAF的访问控制来限制访问,通常有如下几种方式:
- 配置来源的IP归属地,限制来源地域访问
- 通过配置IP白名单来限制来源
配置cdn后,之前配置的ip规则已经失效了,需要查询域名回源ip, 来给waf 或者cvm iptables 配置ip白名单
泛域名问题
- 子域名回源host问题
由于我的站点是泛域名方式进行配置管理,在配置主源站时,配置回源host为
*.domain.cn
, 担心到服务端可见的域名不是子域名的,后面经过咨询是支持的,详情可见泛域名配置文章。 主源站配置 - 特定子域名不走cdn 我们的业务需求某个域名不走cdn,其他的子域名走cdn,这种情况下我们怎么解决呢? 这种情况下可以利用dns解析,dns的解析优先级会先命中子域名dns解析,然后在命中泛域名解析,因此我们可以把特定不走cdn的域名放到dns来解析。