用户静态文件的域名改为CDN域名,请求静态文件时会请求到CDN节点
CDN节点查看自身节点有没有该内容的缓存(可以是uri粒度,也可以是url粒度,理论上接口数据也可以被缓存)
如果CDN节点有该内容的缓存且没有过期,则直接返回给用户,结束
如果CDN节点没有该内容的缓存或者缓存过期,则请求回源的源站地址拉取内容,如果返回的http状态码符合约定(可以是只缓存200,也可以指定301,302也缓存),则CDN将内容进行缓存,否则不缓存
不论回源请求结果如何,都会将回源结果返回给用户,结束(这里区别只是回源后何时对数据进行缓存)
静态文件在代码上线环节,不仅仅要部署到模板服务器,还需要通过脚本推送到远端的对象存储服务中
静态文件直接使用对象存储服务器提供的CDN域名访问(CDN到对象存储服务器应该也属于回源加速)
适用于部署时可分开部署,先上静态文件,再上模板文件的场景,否则会有线上流量损失
针对静态文件,要尊重文件的客观存在性,不存在的文件,http code一定返回404,不能做兜底逻辑,路由到其他非404的页面(比如统一定位到一个404错误页面,但是http code是200)
不能对静态文件有任何形式的适配跳转,否则可能会导致CDN缓存错误的数据
一定要保证在上模板前,对应的静态文件已经成功推送到远端的对象存储服务器