扫二维码与项目经理沟通
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流
大家可能有一个这样的感觉,一些我们天天上的网站特别是大型网站打开的时候会特别的快,而一些我们不经常打开的网站第一次打开非常慢,特别是当我们在网上查找某一个公司的时候打开某个公司网站的时候更有这种感觉。
其实这种区别主要是两个原因造成的:第一,是因为大型网站的硬件资源肯定更好,比如百度肯定在全国更低都有一些网络节点,而小网站特别是企业网站一般都是使用一些虚拟空间,很多只有1MB带宽;第二,大网站经常看,所以很多公共的资源是被电脑或手机缓存起来的,而小网站第一次打开需要重新加载所有的资源。
同样有一个现象,我们第一次打开一个网站的时候可能很慢,比如需要5-10s甚至更长时间,而刷新的时候就会快很多,而这个时间主要是用于网络传输的时间,当然如果有复杂逻辑计算,那么还有后台运算的时间。
而事实上一般的企业网站都是使用较低的硬件配置,比如如果一台单独的企业网站服务器,可能就使用1MB带宽的带宽(要知道带宽是很贵的资源)。因为一个企业网站一天能够有几千IP访问量就很不错了,很多企业网站都不到几十IP,我们微构网络最近官网的日均IP也才300-500的样子。最土豪的方式当然是投入更多,而问题是很多人觉得一个小小企业网站投入大量带宽资源简直是浪费资源,而且事实上也是如此的,因为某一些一天24小时内累计访问时长可能只有几分钟到几十分钟。
基于这样的现实,我们提供了成本低且可以很大程度上解决该问题的方案,那就是把网站的静态资源,特别是通用的一些静态资源,比如企业网站的大banner、素材、横幅、js、css与网站主体分离,把这些大量消耗峰值带宽(即只是某些高峰期好带宽,而很多时候不需要多少带宽)的资源分离出来,存储到一些专门的存储和CDN服务上门,比如阿里云的OSS+CDN、七牛云等。这样打开速度会提升几倍,而成本基本没增加多少;而且这个方案在我们很多个企业网站项目中很好应用,都取得非常不错的效果。
网站建设中采用静态资源分离方案除了更快,就没有别的好处了?
当然不是!
下面我们分享一个简单的实例来解释还有其他的好处。比如我们微构网络官网就采用了上述描述的方案,最近遇到两个事情,说明分离静态资源的另外两个好处。
案例一:网站被扒。懂开发的朋友都知道,网站前台是可以直接把代码复制的,只是在这个过程中“偷”的成本不同而已;因此微构网络官方网站的前端部分最近几个月就经常被一些同行公司抄去做自己的官网。如果是传统的架构,那么直接使用html网页下载器即可以把网站中的html、css、js、图片等静态资源全部下载下来;而分离后直接使用传统的下载器下载那么静态资源部分中的资源是不能下载的。这样一来虽然可以通过进一步的方式获取到,但操作成本大大增加;对方成本增加从某种程度上就更加保护了我们的成果。而且要是水平不太高的小偷,可能直接把静态资源使用我们的,而我们这个时候如果故意不留限制的话,后续就很精彩了,大家都懂的。
案例二:网站被镜像。网站镜像虽然看上去是一个很古老的名词,然而现在依然非常常见,特别是一些曝光度比较高的网站;只不过现在的镜像都由传统的定向镜像改为非定向镜像而已。也就是没有确定的目标,比如一些博彩类的网站会疯狂随机镜像其他的网站内容,而且都是用软件批量操作的。如果是传统的架构,会非常容易实现对目标网站的内容镜像,而采用静态资源分离后成本将大大增加。因为镜像一般都是把获取过来的内容通过替换,把域名换成镜像网站的域名,而我们网站的主域名是不方便经常更改的。但是我们的静态资源所对应的url可以经常更改,而不影响用户的使用。而且很多镜像行为只替换了主域名,这个时候镜像网站实际上使用了我们的静态资源,包括css和js之类的,那么我们可以禁止他访问,或者在js中通过判断如果不是自己网站就把网页重定向到自己网站。这样镜像网站就将失去意义了,如果对方还是想镜像网站,这样的成本就会增加许多。
今天微构网络跟大家分享静态资源分离除了加快速度、降低成本外的另外两个好处,其实除此之外还有更多的好处,我们将在后续继续跟大家分享。
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流