什么是CDN
内容分发网络(CDN)是一个互连服务器网络,依靠数以万计的边缘服务器群和强大的数据吞吐量,可加快数据密集型应用程序的速度,包含但不限于你的手机应用,你的节点、你的网站等,但是本次,我们只讨论网站加速!
CDN的优势
**首先,CDN用肉眼可见的速度加快你网站的加载和打开速度:
我用一张图片来举例:
这是没有cdn的情况,三次wget速度如下:
image-1536x864.png.4 100%[==========================================>] 234.15K 221KB/s in 1.1s
image-1536x864.png.5 100%[==========================================>] 234.15K 368KB/s in 0.6s
image-1536x864.png.6 100%[==========================================>] 234.15K 273KB/s in 0.9s
这个是已经使用了cdn的情况,四次wget速度如下:
image-1536x864.png 100%[==========================================>] 234.15K 402KB/s in 0.6s
image-1536x864.png.1 100%[==========================================>] 234.15K --.-KB/s in 0.009s
image-1536x864.png.2 100%[==========================================>] 234.15K --.-KB/s in 0.003s
image-1536x864.png.3 100%[==========================================>] 234.15K --.-KB/s in 0.003s
可见,一个图片文件本地打开时间从1秒减小到0.03秒,提高了300倍;
**降低带宽成本
一般情况下,购买服务器都有带宽和流量限制,带宽例如:峰值5M的,共享100M的,共享1G的;流量限制例如:500G/月,1T/月等;这些限制我们都可以用CDN来辅助解决,因为CDN 可以减少源服务器请求,从而降低网站托管成本。
**提高内容可用性,可实现无缝访问
CDN 服务可以处理更多 Web 流量并降低 Web 服务器的负载。此外,如果一台或多台 CDN 服务器离线,其他运营服务器可以替换它们,以确保服务不中断。
**再有就是提高网站安全性
对于DDoS攻击,CDN 可以通过在多个中间服务器之间分配负载来处理此类流量峰值,从而降低对源服务器的影响。
CDN的原理
简单来说,CDN 的主要是将原始服务器上的内容缓存到全球分布的边缘服务器上,当用户请求访问某个网站时,CDN会自动将请求定位到距离用户最近的边缘服务器,从而提高用户的访问速度和体验。
如果该边缘服务器上已经缓存了用户所请求的内容,则直接返回给用户。否则,边缘服务器会向原始服务器发起请求,并将结果缓存到自己的服务器上。
如果原始服务器上的内容发生了变化,CDN会在一定的时间内将更新通知到所有缓存了该内容的边缘服务器上。
CDN服务推荐
CDN既然有这么多优势,价格怎么样呢?
CDN厂家一般都是按下行流量计费方式,自然月累计阶梯计价。比方说,百度智能云CDN:
流量阶梯 | 折扣价(元/GB) |
---|---|
0GB-10TB(含) | 0.20 |
10TB-50TB(含) | 0.17 |
50TB-100TB(含) | 0.14 |
100TB-1PB(含) | 0.12 |
大于1PB | 0.10 |
阿里云国际CDN全站加速,可以按照峰值带宽计费,也可以选择流量计费套餐:
流量阶梯(计费单位:元/GB) | 中国内地-CN | 北美-NA | 欧洲-EU | 亚太1区-AP1 | 亚太2区-AP2 | 亚太3区-AP3 | 中东、非洲-MEAA | 南美-SA |
---|---|---|---|---|---|---|---|---|
0GB-10TB(含) | 0.24 | 0.46 | 0.46 | 0.79 | 0.85 | 0.85 | 1.31 | 1.31 |
10TB-50TB(含) | 0.23 | 0.46 | 0.46 | 0.79 | 0.85 | 0.85 | 1.31 | 1.31 |
50TB-100TB(含) | 0.21 | 0.39 | 0.39 | 0.66 | 0.72 | 0.72 | 1.18 | 1.18 |
100TB-1PB(含) | 0.18 | 0.20 | 0.20 | 0.52 | 0.66 | 0.62 | 0.98 | 0.92 |
大于1PB | 0.15 | 0.16 | 0.16 | 0.46 | 0.59 | 0.59 | 0.92 | 0.85 |
到目前为止,我还真没见过个人博客超过流量1TB/月的情况,图片站视频站那肯定要超过了,价格自己算算,另外还有,阿里腾讯百度CDN国内加速必须备案,阿里有半年免费试用。
下面,就是今天的主角登场了:
AWS CloudFront CDN简介
Amazon CloudFront (CFT)使用了一个包含 450 多个接入点和 13 个区域边缘缓存的全球网络,该网络覆盖 48 个国家/地区的 90 多个城市。在中国的边缘节点包括:中国上海(1 个);中国深圳(1 个);中国中卫(1 个);中国北京(1 个);中国香港(4 个)完全可以用于国内站点;至于欧美那就更不用说了!
下图是CFT的边缘缓存、边缘节点地图:
无论你在世界的哪里,CFT基本上保证1秒触及,让网站流畅到飞~比较知名的新闻站Reuters,上个视频介绍过的slack,流媒体hulu使用的就是CFT服务。
最重要的,CFT有1TB/月的流量而且永久免费,这对小站长来说是个大大的福利,我们只要付超出1T流量的费用即可,CFT的定价请参考:https://aws.amazon.com/cn/cloudfront/pricing/?nc=sn&loc=3
仔细算算,CFT基本上不用花钱的!
马上注册AWS
注册地址:https://aws.amazon.com/cn/free/
注册方法我以前也做过视频,详细讲解过,此处略!
CFT的设置
CloudFront设置非常简单,名词解释和设置方法可参考官方文档:https://aws.amazon.com/cn/blogs/china/configure-amazon-cloudfront-to-accelerate-the-whole-site/
如果对于静态站点,可直接在CFT后台直接创建分配,仅仅需要设置源域
,价格级别
,协议策略
即可,其他保持默认即可创建成功;
动态网站,我来说说比较流行的Wordpress,有个更简单的方法就是使用插件。后台搜索WPAdmin AWS CDN,作者:WPAdmin,请不要自作主张,如果你直接搜索CDN插件错误安装了W3 Total Cache的话,价格$99/年,暂时用不到。
当你完成了WPAdmin AWS CDN的安装,已经有了AWS账号之后,到 IAM账户管理,添加IAM账户。当然,你在已经登陆的账户中创建反问密钥也可以,但是为了方便管理,我建议添加一个。
在用户
中,我们添加一个用户,名字随便,权限我们选择直接附加策略
,勾选ccessAnalyzerServiceRolePolicy
,然后下一步下一步就完成了。
接着,在新用户的安全凭证
中,我们创建该用户的访问密钥
,请保密存储;
注意:aws地区不同,后台版本不同,上面的步骤有些许不同,思路一样自己找找!
然后,我们到wp后台设置插件,输入密钥,开启CDN。
在这个插件新开启CDN时候,aws后台的cloudfront会自动创建一个分配,需要等待2-3分钟后可用,
当我们测试后,会显示 XXXX.cloudfront.net is Currently Active,说明开启完成了。
现在,插件会把你网站的css、js、jpg、png、视频等静态资源地址自动改成你的分配地址,CFT也会根据用户请求开始缓存你的资源,不久,你会发现网站打开速度飞了起来!
总结
Cloudfront CDN明显提升用户体验,减轻源服务器压力有奇效,这对于一个想要长期坚持做站的朋友是非常有帮助的,妈妈再也不用担心我的服务器太远了,因为我们有了CDN。