使用CDN的好处和注意事项

前天明月分享了各个主流cdn服务的评测,发现cdn话题很受各个站长们的关注,并且感觉到很多博客站长们对cdn的认识不充分,甚至有博客站长很无视cdn的作用。今天明月就结合自己折腾cdn几个月总结的使用cdn好处以及在使用cdn时要注意的事项分享给大家,以便大家能更好的运用cdn给博客添砖加瓦!
cdn的全称是content delivery network,即内容分发网络。其基本思路是尽可能避开互联网上有可能影响数据传输速度和稳定性的瓶颈和环节,使内容传输的更快、更稳定。通过在网络各处放置节点服务器所构成的在现有的互联网基础之上的一层智能虚拟网络,cdn系统能够实时地根据网络流量和各节点的连接、负载状况以及到用户的距离和响应时间等综合信息将用户的请求重新导向离用户最近的服务节点上。其目的是使用户可就近取得所需内容,解决 internet网络拥挤的状况,提高用户访问网站的响应速度。
关键技术
1、内容发布:它借助于建立索引、缓存、流分裂、组播(multicast)等技术,将内容发布或投递到距离用户最近的远程服务点(pop)处;2、内容路由:它是整体性的网络负载均衡技术,通过内容路由器中的重定向(dns)机制,在多个远程pop上均衡用户的请求,以使用户请求得到最近内容源的响应;3、内容交换:它根据内容的可用性、服务器的可用性以及用户的背景,在pop的缓存服务器上,利用应用层交换、流分裂、重定向(icp、wccp)等技术,智能地平衡负载流量;4、性能管理:它通过内部和外部监控系统,获取网络部件的状况信息,测量内容发布的端到端性能(如包丢失、延时、平均带宽、启动时间、帧速率等),保证网络处于最佳的运行状态。
主要特点
1、本地cache加速 提高了企业站点(尤其含有大量图片和静态页面站点)的访问速度,并大大提高以上性质站点的稳定性2、镜像服务 消除了不同运营商之间互联的瓶颈造成的影响,实现了跨运营商的网络加速,保证不同网络中的用户都能得到良好的访问质量。3、远程加速 远程访问用户根据dns负载均衡技术智能自动选择cache服务器,选择最快的cache服务器,加快远程访问的速度4、带宽优化 自动生成服务器的远程mirror(镜像)cache服务器,远程用户访问时从cache服务器上读取数据,减少远程访问的带宽、分担网络流量、减轻原站点web服务器负载等功能。5、集群抗攻击 广泛分布的cdn节点加上节点之间的智能冗余机制,可以有效地预防黑客入侵以及降低各种d.d.o.s攻击对网站的影响,同时保证较好的服务质量 。
通过上述引用自“百度百科”的cdn介绍,大家应该基本理解了cdn的原理和作用了。下面我们就先说说cdn能给我们带来哪些好处?
cdn对草根博客的好处
对于我们草根博客来说cdn的“内容分发”、“内容交换”、“性能管理”关键技术是我们众多草根博客依靠自己是难以实现的,并且还是对我们草根博客大有益处的。
一、提升博客用户体验
这几个关键技术也是最直观的体现在博客的用户体验上的,一个网站最大的桎梏就是用户端的载入时间长短了,这就相当于实体店铺的经营场所是否交通便利与否,也就是俗称的“地利”了。目前pc端宽带、手机端4g网络普及率已经是非常的高了,并且年年都在“提速”。所以,用户端的网络使用习惯之一就是要“快”,博客网站的快慢基本都是取决于博客主机的配置性能以及主机带宽这两个因素,而这两个因素的成本不是我们草根们随便一个人都能承受的,所以一味的盯着升级主机配置和带宽性价比是非常差的。另外我们的国情造成得电信、联通南北割据造成的双线主机也是一个影响得因素,这又是一个成本不低的开支,有些不懂的站长甚至用的都不是双线主机。所以,cdn的出现给了我们一个性价比很高的解决方案,只需要启用cdn就可以省下主机配置、独立带宽、南北双线这三个博客载入速度的难题,就明月自己的折腾体验来说,cdn的速度表现最大的特点就是速度均衡、分摊主机资源压力、跨区域和跨运营商体验差距减小等优势。甚至好不夸张的说,有了cdn我们主机就算是廉价的虚拟主机浏览体验一样可以媲美中高端主机的体验。至于说“浏览体验”对博客站的权重提升有多大影响明月就不多说了,看看各个搜索引擎的白皮书就知道了。
二、提升博客的稳定性和安全防护能力
主机宕机,估计是很多博主们最不愿意看到的,有时一时的流量增长都可以让我们的小主机挂掉,还不说有些主机的流量限制和主机带宽瓶颈,明月就碰到过类似的尴尬事儿,有一阵子主站主机频繁的宕机,故障不断,最后实在是受不了折磨咬牙给主机升了级,没有想到没多久又开始宕机了,并且很意外的发现网站流量竟然是不断的增涨,特别是主机升级后增涨最明显,仔细分析后原来是百度权重提升了“意外的惊喜”呀。但频繁的宕机也造成权重不稳定,如果这时候使用了cdn那么效果是不是会更加的完美呢?cdn的内容分发机制有效的缓解了主机压力,也就不存在有宕机的可能(如果这时候还出现宕机,亲!不要傻高兴,这有90%的可能是被攻击了),并且流量增长也不会出现浏览体验的下降(用户访问的都是cdn节点的缓存内容)。有时候搜索引擎也会根据用户浏览体验来作为分配权重的主要依据,所以一个稳定的主机绝对是至关重要的,而cdn更是将稳定又上了一道保险。
被恶意的扫描攻击甚至ddos攻击等估计老站长们应该不陌生了,明月自己就被攻击过,主站同样也有这样的遭遇,可以说就是因为被攻击、被恶意采集、被恶意镜像才使我下大力气去折腾cdn的,因为cdn可以隐藏自己博客的主机ip。看过《三体》小说的应该都知道里面有一个“黑暗森林”法则,其中就提出隐藏自己才是保命的唯一正确途径,一个网站的主机ip是暴露的就相当于是在“黑暗”的互联网里一个“明灯”指引着别人来骚扰和攻击你,这里明月要提醒各位站长们,永远不要相信主机商们所谓的主机安全防护能力有多强大,那都是噱头而已,简单点就是广告术语营销方式,防止攻击纯硬防设备都不敢保证百分百有效,何况是简单的软防主机呢?软防就相当于一个好看的门锁而已,而现在的ddos攻击,随便一个上g当量的攻击就等于是坦克推到房子的效果,能不能防住,自己分析吧!
而cdn因为节点分散,这就是攻击者无从下手,攻击一个节点仅仅是影响一个节点的缓存访问而已,并且cdn的“内容路由”会自动的启用另一个节点,如果cdn服务节点数量够多,那么攻击者需要的流量包就会呈几何级的增加,这样攻击成本自然就高了,除非攻击者是“人傻、钱多”类的奇葩“人才”,要不是个正常人都会放弃攻击了(ddos攻击,其实网上有很多免费的攻击器,高端点儿的可以在国外购买到,大概也就是几十美金的成本吧!)所以说,我一直建议博客站长们尽量启用一个cdn服务,哪怕是免费的都可以,就是有这个安全防护的原因。当然,真正面对专业的“黑客”攻击,cdn也是无能为力的。不过,真正的“黑客”是不会去攻击我们这种草根博客的,因为高手嘛,丢不起那个人,会被同行笑话的。反而是很多“小学生”类的“小人们”惯用这个手法,真是“防君子不防小人”呀!
cdn使用时的注意事项
说完了cdn的好处,那么再来说说使用cdn时的注意事项,这是很多博客站长们的盲区,也是cdn性能不能发挥的盲区,注意下面提到的注意事项绝对可以使你事半功倍的,并且cdn的效能也能发挥到极致。
1、启用cdn的话,一定要在dns解析里单独给“搜索引擎”线路解析到“源站ip”。
搜索引擎理论上是支持网站cdn加速的,但是这是对“google”这样的技术牛逼的搜索引擎来说的,至于说国内的搜索引擎,明月不是不支持国产搜索引擎只是就事儿论事儿哈!在这方面我最多能给40分,也就是说国内搜索引擎所谓的“支持”含金量实在是太低了。所以保险期间务必要记得启用cdn的时候一定要在dns解析了单独给“搜索引擎”专线解析到“源站ip”,dnspod目前支持很多搜索引擎线路类型,推荐使用“搜索引擎”这个线路,至于说百度、搜狗、360这些细分可以忽略,毕竟dns免费解析是有数量限制的。
2、wordpress博客站一定要做好cdn缓存规则配置里的动、静分离设置。
wordpress是php语言编写的,很多的后台操作和前台数据都是需要运行php代码来实现的,所以在启用cdn的时候,一定要不缓存动态文件,比如:.php;.asp;jsp;.do这类的,如果没有设置你会发现你的wordpress博客站在启用cdn后无法登录后台等等很多稀奇古怪的问题。常见的静态文件(比如:.jpg;.jpeg;.gif;.ico;.bmp 等等)可以把cdn缓存时间相对的设定时间长一些,这样可以有效提高cdn缓存的命中率也就是cdn服务的效能。类似.csss和.js文件这个根据自己博客主题的实际情况来应对,可缓存可不缓存,需要自己调试对比后决定。最后就是伪静态的.html缓存与否的问题了,就目前明月测试这么多cdn服务看,缓存.html可以提升不小的浏览速度,但是弊端是.html页面上的动态评论数量和文章阅读量都会失去动态能力了,也就是不会有更新变化了,一般我的建议是不要在cdn上缓存.html,这样兼容性最好,性能上影响也不是很大。
分享一下我在网宿云加速里的缓存配置,这是最好的cdn方案了,我感觉!
另外如果cdn服务的方案比较科学合理的话,大家最好是禁止首页缓存,要不最新文章首页不显示、新文章最新评论不显示等等对于“强迫症”来说绝对是不能接受的。
3、选择cdn服务的是时候一定要选择cdn方案合理科学的。
看过【明月的cdn加速服务简要评测报告】一文的应该都知道,明月在里面很是强调了cdn方案的重要性,上面提到的wordpress的动静分离就是考究cdn方案的地方,常见的百度云加速是免费cdn里方案做的最好的,wordpress的动静分离实现几乎完美。收费cdn服务里网宿云加速和阿里云也是相当不错的;其它的就目前明月测试的都过多过少的有些硬伤,腾讯云cdn勉强合格(无法首页不缓存),七牛融合cdn最垃圾。
4、使用cdn服务要学会和熟练掌握浏览器“开发者工具”的使用。
比如通过浏览器神器“谷歌浏览器”的“开发者工具”可以测试cdn服务的命中情况和一些本地缓存设置的具体情况,这对于cdn的最大效能发挥有至关重要的作用,当然这都是cdn服务高级使用的范畴了,明月也是在学习中,以后会多给大家交流的这方面的心得体会的。
5、要善于使用cdn服务后台的“工单”来请教客服指导。
谁都不是技术大咖,有疑难杂症解决不了的,就主动在cdn服务后台里“提交工单”向客服求救,同是这也是考量cdn服务商品质的一个重要指标,如果客服回复时间严重滞后,那么明月建议你尽快更换cdn服务吧!正规的cdn服务商都会拥有一个完善高效的客服支持体系的,所以大家一定要善加利用!这方面做的很好的实例请参考文章【今天折腾了一下腾讯cdn,腾讯攻城狮超赞!】,最差的请参考我的“博主吐槽”【七牛云 融合cdn的“最久需要12小时”,我服了!】,至于说各个cdn服务商提供“帮助”文案,说实话仅仅当作参考吧,因为没有发现哪个帮助文案是全面的,基本上都是越看越迷糊这个档次的,除非有经验,否则不建议当成主要资料来依赖。
总结语
其实cdn服务商的水平可以说是岑差不齐的,采用的cdn解决方案可以说是五花八门,所以在使用一个cdn服务之前一定要多测试,多调试,毕竟启用cdn服务是为了提升用户体验的,不能适得其反呀!最后提醒一下使用的主机有流量限制和资源监控的站长们,因为启用cdn后,cdn各个节点会采集源站的相关数据,这期间很容易耗尽主机资源,所以尽量选在凌晨以后开启cdn,以防浪费了主机启用次数(蛋疼的阿里云就有这个限制)。玩博客其实就是多学、多问、多看、多交流,所以折腾是常态,不折腾反而不自在了,呵呵。
不知不觉竟然啰嗦了这么多,看来我越来越话痨了,这是病,得治呀!