静态资源CDN
来源:互联网 发布:云计算中saas是啥意思 编辑:程序博客网 时间:2024/05/16 08:20
静态资源CDN
参考地址: http://blog.csdn.net/u013063153/article/details/52806155
静态资源(static resources) : js , css , img 等非服务器动态运行生成的文件
在一般的网站中,静态资源使用频率高,流量占用大。对于有追求(访问量稍大)的网站,都会把静态资源放置到CDN服务器,不占用业务服务器的网络带宽,从而达到更好的用户体验。那大公司的静态资源怎么发布呢?
发布要求
静态资源必须走CDN
平滑升级–非覆盖式发布
在不修改线上静态资源的情况下,发布新的静态资源。即CDN上的静态资源必须共存多个静态版本
- 先部署页面,再部署资源。 结果:新的页面访问了一个旧的资源,除非手动刷新,否则在资源缓存过期之前,页面会一直执行错误。
先部署资源,再部署页面。 结果:有本地缓存的正常;没有本地缓存的,旧的页面加载新的资源,导致页面执行错误,当页面部署完成,访问才恢复正常。
- 精确的版本控制–文件版本号
更新静态资源,只更改修改的部分。不能修改未更新的资源的引用。
全量的更新静态资源对于用户和服务器的提供者来说是非常不友好的,极度浪费CDN资源和用户流量。在CDN的配置中,会把缓存时间设置很长。
解决方案:根据文件的内容算出一个值,如果文件内容不改变,那么这个值就不会改变。
发布和问题
发布流程
如果我们把静态资源的实际访问域名设置为 res.company.com。
功能开发结束后,开发人员把静态资源提交到测试环境 Git 仓库。
测试人员在测试环境通过绑定 host 的方式测试,测试通过后,进入发布阶段,需要静态资源
代码提交到产品环境 git 仓库。(使用测试和产品两个仓库,是为了测试和产品环境完全隔离)
- 源站(origin.res.company.com)从产品环境 Git 拉取静态资源的代码,并且为静态资源
提供访问服务(nginx 等),该域名不提供文件缓存服务,仅仅作为 CDN 的回源地址。所以代码
中一定不要写源站的信息。
4. 在 CDN 服务商提供的空间中,将回源地址配置为源站(origin.res.company.com)。
CDN 服务器会提供一个默认的访问域名,比如 cdn-1.res.cdn_company.com, 然后把实际需求访问的静态资源域名res.company.com CNAME 到 cdn-1.res.cdn_company.com。
代码发布完毕。用户访问的时候,会访问到最近的 CDN 阶段。CDN 结点去文件中心取文件,
如果不存在文件则回源到源站,获取文件。(有些 CDN 产品提供文件存储功能,异地备份)
- 通过这样的流程,就能让用户访通过 CDN 访问到我们的实际资源。
怎么做到多个项目共存
结论:我们会按照目录来划分业务的静态资源。
res.company.com域名下面会共存多个业务。A业务,B业务都是使用同样的发布方案。
比如:某静态资源的访问路径为: http://res.company.com/:业务名/js/xxx.xxx.js
多个团队可以使用同一个静态资源仓库,res.git,然后按照目录来区分业务。web 服务器直接指
向到 res/即可。静态资源更新只需要 pull 代码即可,而不需求做其他改动。
是否同源站文件到CDN
同步源文件到CDN能确保实现非覆盖式发布。
最后
- 终端用户就近访问 CDN 加速节点上的资源
- 若 CDN 加速节点上不存在资源,则回源获取资源
- 回源获取的资源持久化存储到 CDN
- 返回资源内容给终端用户
- 当终端用户再次访问相同的资源时,CDN 的加速节点将直接返回资源内容,不需要重新回源获取
大公司开发部署前端代码
观赏网址: https://www.zhihu.com/question/20790576
负载均衡
观赏网址: http://blog.csdn.net/wireless_com/article/details/52761138
- 百度静态资源cdn
- 静态资源CDN
- 静态资源CDN公共库
- 国内前端CDN静态资源加速站点
- cdn托管静态资源的保险方案
- Bootstrap CDN资源
- CDN资源下载工具
- 静态资源库CDN服务
- Bootstrap静态cdn
- CDN(静态独立)
- 国内网站常用的一些 CDN 静态资源公共库加速服务
- Ruby on Rails 网站大型化之静态资源 CDN 架构
- 转战gulp,实现前端静态资源的压缩,加MD5戳,替换引用,加CDN前缀
- 使用jquery静态资源公共库cdn及回退地址
- 使用jquery静态资源公共库cdn及回退地址
- gulp实现前端静态资源的压缩,加MD5戳,替换引用,加CDN前缀
- 电商平台静态资源(图片)一般及CDN解决方案(转载)
- 当你的静态资源CDN挂掉了该怎么办?
- 1073约瑟夫环
- Pythoon爬虫之requests库学习
- HDU 3333 Turing Tree 可持久化线段树
- 君正X系列开发---添加rz,sz命令2
- 单片机的存储空间
- 静态资源CDN
- 配置keepalived实现高可用性mysql主主复制
- 布隆滤波器的改进
- TensorFlow分布式全套(原理,部署,实例)
- 新建项目之TabHost
- 1057N的阶乘
- JSP&Servlet servlet生成报表
- 求数组的小和
- Promise深入理解