所谓CDN加速,其实说白了就是将网站内容分发到不同地区的节点上,通过此方式来缩短访问者主机与储存网站内容的主机之间的距离。也包括不同运营商线路所导致的访问速度降低的尴尬问题。
总的来说这是一种桥接的方式,因此CDN的好出也是显而易见的,至少有如下几个好处:
- 缩短主机之间访问时信息传递的距离(加速效果)
- 分发至不同线路的节点后可以让不同线路的访问者在访问时提升实际的响应速度(比如电信和联通网络的访问差异,也是加速效果)
- 分发后的不同节点IP地址不同,而且会自然的隐藏掉源寄存主机的真实IP,这样可以防止一些恶意攻击。(安全保护效果)
而对于CDN服务而言,基本大厂商才有能力提供相对稳定的免费CDN服务,当然他们也会带有付费的CDN服务,所享受的服务质量当然也是有区别的,但是大厂商们提供的免费CDN服务还是值得肯定的,有其实实在在的价值。
不过,CDN服务其实不亚于另一台主机或另多台主机。这么说其实主要还是因为这些分发的节点服务器需要承担网站的访问量和一些其他须求,比如防御攻击或者缓存更新的速度,甚至搜索引擎蜘蛛DNS同步和缓存过期时间等。基本接替源主机的作用,有些方面还要超越源主机,所以价格也不会低。还是要综合来看,性能越好功能越强大,就越贵。这很正常~
但是为什么使用CDN加速后,反而网站的访问速度会变慢?
理论上这种情况不太科学,但是出现的原因也很简单很容易理解。比如,你在香港或者美国使用的VPS,那么在这种情况下你申请一些大厂商提供的CDN加速服务,如果你备案了,那么可以享受国内不同地区的节点提供的服务。
如果没有备案,那么厂商还是只能给你提供境外的节点来进行中继,这样的话很有可能把你香港VPS的内容分发到美国节点,反而导致你网站访问变慢,就算同样是美国节点也未必有你VPS的综合性能更好,因此也可能导致网页打开速度更慢。
但是,如果你已经备案了那么你可以直接选择国内的VPS之类,或许一次就解决问题了,很有可能你不太须要使用CDN服务了。除非你有特别的原因。
然而如果没有备案的话,比较科学的做法应该是比如你用的是美国的VPS然后用香港的CDN节点来提供访问。(当然这是理论上的,不绝对,因为香港的线路也分国际线路和“直连”内地的线路。)
因此,是否使用CDN服务,还要具体问题具体去看待,不能一概而论。否则,很有可能导致CDN减速的状况。就比较乌龙和多余了...