站点图标 小文's blog

网站“动静分离”分析及实战

所谓动静分离就是通过nginx(或apache等)来处理用户端请求的静态页面,tomcat(或weblogic)处理动态页面,从而达到动静页面访问时通过不同的容器来处理。

0x01网站“动静分离”分析

(一)动静分离简析

普通建站,只需一台服务器即可,这就意味着一个网站的所有资源全部存放于本地(服务器里)。随着网站的数据日益增加,服务器磁盘看着变小,网站处理速度会越来越慢。此时你是不是该考虑换服务器了。这时,不妨考虑下给网站来个“大瘦身”。可以说服务器80%的磁盘被图片等媒体资源占用,把这些资源用专门的容器存储起来(对象存储)即为简单的动静分离。

 

静态文件:图片,视频,音乐,JS,CSS,HTML等可直接访问的文件 动态文件:需要服务器进行编译运行的文件(.jsp .php等)

(二)动静分离优点

 

1.降低Web服务器负载,加快网站访问速度

服务器只需编译运行动态文件,大大降低了服务器负载。因为不用加载那些静态文件,所以降低了服务器带宽需求。网站瞬间加载,不会出现卡顿的问题。

2.海量存储空间存储费用最低

服务器在磁盘满了之后,扩容所需的投资是巨大的。而使用对象存储基本是不用在意的。

3.流量费用低

服务器流量基本是以带宽计费,费用也是高的不行。如果用服务器存放图片等媒体文件,加载慢不说,还特别贵。

以下为腾讯云服务器带宽1Mps和10Mps费用比较

 

 

 

0x02实战网站文件动静分离(阿里云OSS)

网站动静分离架构

在该架构中,OSS作为海量文件存储源,静态图片、视频文件、下载包、App更新包等均放在OSS,同时OSS作为CDN的源站,通过CDN加速分发,用户通过CDN节点就近获得文件。

该架构优势十分明显:

第一步

对ECS上的网站程序进行整理,把动态程序部分和静态部分分不同的目录管理起来:

第二步

进入到OSS控制台,点击“CDN加速OSS”。

第三步

点击“立即上传文件,体验加速效果”。

第四步

按照前三步的示意,把其他两个文件也通过“CDN加速OSS”的方式上传,分别建立“acar-js-bucket”和"acar-csimages-bucket"两个使用CDN加速的OSSbucket。

第五步

在原本ECS系统中,找到原本访问静态文件的代码,把访问URL修改为加速访问的地址。

大功告成,以后用户访问您的网站的静态文件就全部通过OSS+CDN的方式访问,不再占用您ECS的资源。

需要注意的是,如果您想把用户上传的文件自动同步到“acar-csimages-bucket”中,您可以参考OSS相关SDK和API的PutObjcet部分,实现代码级别自动上传。

注意事项

 

wordpress等程序已开发出插件,不需要手动上传插件,方便使用。

具体插件请百度一下

退出移动版