其他
百度智能云实战——静态文件CDN加速
2、Local DNS请求权威DNS;
3、权威DNS返回配置的CNAME:
4、Local DNS请求 my.com.a.bdydns.com 对应的IP;
5、Baidu 智能DNS根据智能调度返回离用户最近的接入点IP;
6、LocalDNS返回 my.com 的IP地址并缓存到浏览器;
7、用户向CDN节点发起HTTP/HTTPS请求,访问 my.com 的内容;
8、CDN 通过百度智能云加速链路,将请求转发至多线中心节点;
9、中心节点向源站发起回源请求;
10、源站向中心节点返回响应;
11、中心节点、边缘节点将响应返回用户,并缓存响应内容。
6、LocalDNS返回已缓存的 my.com 的IP地址;
7、向CDN节点发起HTTP/HTTPS请求,访问 my.com 的内容;
11、边缘节点发现缓存数据,响应返回请求返回数据;
2、步骤11边缘节点发现缓存数据,响应返回请求返回数据:这里直接将命中缓存的数据返回,避免了回源站点,减少了源站的带宽压力,大大提升了资源加载速度。
用户静态文件的域名改为CDN域名,请求静态文件时会请求到CDN节点
CDN节点查看自身节点有没有该内容的缓存(可以是uri粒度,也可以是url粒度,理论上接口数据也可以被缓存)
如果CDN节点有该内容的缓存且没有过期,则直接返回给用户,结束
如果CDN节点没有该内容的缓存或者缓存过期,则请求回源的源站地址拉取内容,如果返回的http状态码符合约定(可以是只缓存200,也可以指定301,302也缓存),则CDN将内容进行缓存,否则不缓存
不论回源请求结果如何,都会将回源结果返回给用户,结束(这里区别只是回源后何时对数据进行缓存)
静态文件在代码上线环节,不仅仅要部署到模板服务器,还需要通过脚本推送到远端的对象存储服务中
静态文件直接使用对象存储服务器提供的CDN域名访问(CDN到对象存储服务器应该也属于回源加速)
适用于部署时可分开部署,先上静态文件,再上模板文件的场景,否则会有线上流量损失
针对静态文件,要尊重文件的客观存在性,不存在的文件,http code一定返回404,不能做兜底逻辑,路由到其他非404的页面(比如统一定位到一个404错误页面,但是http code是200)
不能对静态文件有任何形式的适配跳转,否则可能会导致CDN缓存错误的数据
一定要保证在上模板前,对应的静态文件已经成功推送到远端的对象存储服务器