如何实现网站文件动静分离
背景 传统动静不分离的产品架构,随着访问量在增长,性能会成为瓶颈。以一个常见的Web站点为例。www.acar.com是一个刚建立汽车资讯车友交流网站,主站用Php搭建,有10GB的图片素材,部分JS文件。目前购买一台ECS放置所有程序代码,并在ECS上安装MySQL数据库。随着用户访问量的不断增长,不少用户反映,访问网站的速度越来越慢,图片加载慢,网站响应慢,同时网站技术人员也发现用户上传的图片越来越多,快超过1TB了。在这种情况下,用户可以通过利用OSS和CDN对网站进行架构优化,做到网站文件的动静分离的,提升用户访问体验,实现成本可控。 网站动静分离架构 在该架构中,OSS作为海量文件存储源,静态图片、视频文件、下载包、App更新包等均放在OSS,同时OSS作为CDN的源站,通过CDN加速分发,用户通过CDN节点就近获得文件。 该架构优势十分明显: 降低 Web服务器负载,静态文件访问负载全部通过CDN; 存储费用最低,OSS的存储费用仅为ECS磁盘费用的50%; 海量存储空间,无需考虑存储架构升级; 流量费用低,相比直接通过 OSS访问,除极少额外增加的回源流量外,主要流量使用CDN流量,单价最低只需0.26GB,远远低于OSS直接访问的外网流量单价。 具体操作步骤 第一步:对ECS上的网站程序进行整理,把动态程序部分和静态部分分不同的目录管理起来: 建立Images目录