2014-04-21

使用阿里云和 webluker 搭建自己的免费 CDN 系统

虽然 CDN 技术目前已经很成熟,而且互联网公司都在使用 CDN 加速自己的应用。可是作为个人来讲 CDN 服务还是显示的太专业。需要花费很多时间和精力与 CDN 提供商联系、咨询等而且价格也不便宜。但随着云计算的发展 CDN 服务现在也可以像使用水、电一样按使用量先使用后付费了。阿里云就是一个很不错的解决方案,如下所示阿里云 CDN 的价格表:

白菜价有没有?这么便宜的 CDN 服务你的站长朋友知道吗?一个流量一般的博客一个月下来也用不了十块钱就能享受专业的 CDN 服务有没有。其实做这种“轻型”的 CDN 服务的不止阿里云一家,阿里云也是不是第一家。比如蓝汛的 Webluker 很早以前就提出这个概念,也有类似的服务。咱们看看他们的服务价格: 亲他们还在包月呢有没有?如果是第一次接触 CDN 服务的我都不知道他们的服务质量如何,我作为一个个人站长也没有足够的精力去和他们的销售交涉,我是不会采用他们的服务的有没有。如图 1 所示,是阿里云个人账户金额管理部分截图

看到了人性化、便利性了把。阿里云 CDN 可以随时向账户充值, 可以随时提现,这一点 webluker 还差的很远。而且蓝汛的云计算和阿里的比起来相信差距还是很大的。当我看到阿里云的 CDN 时候眼前一亮。真的是把 CDN 做的通用化,让平凡的站长手中又多了一把利剑。虽然 Webluker 的 CDN 服务没有做的那么便利,但是 webluker 提供了很好的检测工具, 比如 HTTP 探测 可以探测 CDN 加速效果、PING 探测 可以探测链路情况,还有端口探测、域名探测等。好吧说道这里你可能觉得这是一篇软件,下面就上干货。

CDN 到底有什么用?可以给站长带来什么?

我以 jike.me 这个域名举例说明,其中 www.jike.me 这个子域名采用阿里云 CDN 加速,zd.jike.me 这个子域名不使用 CDN 加速(我的源站是在阿里云的一台 ECS 虚拟机上,使用的是最低配置)这两个域名指向的资源完全相同, 区别仅仅在于一个使用了阿里云 CDN, 一个没有使用 CDN。使用 jQeury 这个 javascript 库为例进行验证(因为大部分的个人博客都会使用这个 js 库)。使用 webluker 的 HTTP 探测分别探测这两个域名看看探测结果如 2 和图 3 所示:

我们分析一下装两张图:

www.jike.me 这个域名的 HTTP 响应都是从阿里云 CDN 设备的 web Server 做出的相应,并且资源已经被 HIT 住了 www.jike.me 的全国平均响应时间是 75.4, zd.jike.me 的全国平均相应时间是 3050.19,明显使用了 CDN 服务的域名带来了良好的用户体验 可以看到使用阿里云 CDN 的域名 www.jike.me 解析出来的 IP 和探测设备的“网络距离很近”,这就是内容分发服务的本质 可想而至 zd.jike.me 这个域名的服务质量好于坏不但取决于源站设备的 WebServer 还取决与带宽资源。由于 CDN 是通过对源站内容进行缓存从而实现加速的,所以源站的带宽不再是瓶颈, 通过这一点我们可以做到使用阿里云的便宜带宽资源缓存 IDC 昂贵带宽的目的。重要的是按需付费,你的源站无论使用的是 VPS 还是虚拟主机基本都是包月的,即便是凌晨时候没人访问你的网站,你也是要支付带宽使用费的。

图 4 所示是阿里云的带宽资源使用统计, www.jike.me 这个域名的 CDN 带宽峰值是 3.5M/s,知道我的源站的带宽是多少吗? 只有 1M 啊亲。CDN 带宽可以达到 3.5M 的峰值, 那么如果源站也提高到这么大的带宽站长将要付出的是什么呢?咱们已阿里云 ECS 为例对比一下在这里你可以看到默认 1M 带宽的 VPS 价格是 55元/月、 2M 的是 78元/月、 3M 的是 103元/月、4M 的是 128元/月。好贵有木有。另外最最重要的一点 CDN 的流量是按需付费的,不使用不掏钱,而且是先用后支付。