由于众所周知的原因
一直在用cloudflare的付费版,效果还是非常不错的,所以把很多站都移到了cloudflare上面,免费版会有一些问题,但是能用他的DDOS安全防护也是不错的选择。
但是cloudflare和其他CDN一样,有个致命的问题就是国内的访问速度特别慢。这也没办法,国内没有备案和执照是没办法放服务器的,很多政策的限制导致了CDN都是绕着中国跑,连微软的azure在中国都是一个阉割版和别人合作。研究了一番在他们官方上有这么一个说辞。
Cloudflare 现已推出了中国大陆地区的服务,帮助所有企业改善他们的互联网应用的性能及安全, 扩展其全球业务。Cloudflare 和百度的合作将百度大陆的22个中心地区节点与 Cloudflare 全球的86个节点结合起来,实现了真正的资源优化整合。
Cloudflare 不提供中文服务, 中国客户应该使用百度云加速。 百度云加速是第一个在中国和海外为网络性能提供加速,安全和智能服务的中文服务。 云加速提供与 Cloudflare同样的功能 (CDN、 DNS、 DDOS、 Web安全防护等), 并且专门为中国网络和市场需求进行了优化。
如果您希望改善您的中国网站、移动端应用、以及互联网应用程序的性能和安全, 请访问http://su.baidu.com/注册您的账户。
(cloudflare和百度云合作在中国的服务器节点)
在深入研究,他们专门写了一篇官方的博客,介绍百度云和中国的节点,也总结了情况。
您应该选择 Cloudflare如果:
您在海外有相当规模的用户访问量
您希望服务商提供英文支持 (产品和客服)
您不具有ICP备案
您需要HTTPS支持如果您符合以下条件,那么您应该选择使用云加速:
您的访问者主要来自中国
您希望服务商提供中文支持
您已有网站备案 (ICP)
您的域名只需要 HTTP (不需要 HTTPS)
这个就有问题了,看上去官方说明使用cloudflare是不提供国内节点的,如果想用国内节点,必须使用百度云。那如果是用了百度云,是否还能享受海外cloudflare的CDN节点呢?
带着疑问,我拿了一个站点进行了三轮测试,分别是只用cloudflare,只用百度云,和裸跑。这次只是随便测下,并非严格意义上的测试,所以仅供大家参考,大家有兴趣可以深入去测试下。
虽然不是严格测试,为了让测试更加准确,我们每次变更NS的时候,都等待48小时并且在都放在美东的下午,国内的半夜进行测试,一来域名数据完全同步,二来给CDN系统足够的时间缓存网站数据(这个未经证实),三来避免带宽的影响干扰。
以下是测试情况
用于测试的站点情况如下:
- CMS新闻站,大量图片和文字
- 独立服务器在加州,数据库AWS RDS也在加州
- 图片采用了s3 + cloudfront的策略,由于百度云没有找到关闭单一子域名加速的选项,公平起见,所以在百度云和cloudflare我都打开了加速,也就是说在cloudfront上又套了个CDN,理论上应该没问题,不知道实际会怎么样。
- 全站在服务器上https
测试使用的工具:
- 国内情况:17ce
- 全球节点速度测试:dotcom-monitor
- 测试美东和香港节点:webpagetest
- NS记录确认工具:whatsmydns
第一轮:百度云
- 全球节点测试结果(图1.1),平均下来,第一次访问6.4s,第二次访问6s,国内两个节点北京和上海速度为6.3s和6.5s,其中北京第二次访问用了50s,多次尝试之后发现是个意外。
- 单节点测试香港和美东VA(图1.2、图1.3),分别是4.05s和3.46s,由于都在海外所以这个数据只能说明海外节点正常。
- 国内测试,大致10kb-15kb/s的速度。(图1.4)
- 关于https,不是很明白具体的,我自身服务器自带https,百度云据说不带,但是没有提示证书过期。可能是因为cloudflare的证书还有效的原因?
(图1.3)
(图1.4)
第二轮:cloudflare
- 全球节点测试结果(图2.1),平均下来,第一次访问9.9s,第二次访问6.2s,国内两个节点上海挺正常,但是北京又抽风了。
- 单节点测试香港和美东VA(图2.2、图2.3),分别是3.6s和4.6s,非常正常的数据。
- 国内测试,大致10kb-15kb/s的速度。(图2.4)
(图2.1)
(图2.2)
(图2.4)
第三轮:裸跑
- 全球节点测试结果(图3.1),11.7/7.5,比较正常,但是北京测了几次都连不上,上海连上了速度很不错。
- 单节点测试香港和美东VA(图3.2、图3.3),一个4.9s一个5.2s,变化不大。
- 国内测试速度,直连的速度依旧是最好的,达到50左右。(图3.4)
(图3.1)
(图3.3)
(图3.4)
由于还是不放心,我又做了第二轮测试,用于测试的站点情况如下:
- 自己的博客,主要是文字,少量图片
- 独立服务器在加州,数据库AWS RDS也在加州
- 全站在服务器上https
第一轮:百度云
测试失败。由于.do域名的特殊情况。原因私聊
第二轮:cloudflare
- 全球节点测试结果(图5.1),平均速度有所下降(出乎意料),但是国内速度大幅度提升了,上海6.4/5.5,北京47.8/4.4,很明显第一次卡了下。
- 单节点测试香港和美东VA(图5.2、图5.3),一个5.5s一个7.8s,变化不大。不过proformance评分上去了,除了FBT是由于服务器的问题,其他得到了改善(图5.4)
- 国内测试速度上并没太大的改善,而且美国这边的速度降下来了。不过和防护来说,这点降速并算不上什么。
(图5.2)
(图5.3)
(图5.4)
(图5.5)
第三轮:裸跑
- 全球节点测试结果(图6.1),平均时间是12.7,第二次访问为6.8。说明JS和CSS缓存之后速度有所提升,北京的速度是42.8s,第一次测试的时候上海的服务器坏了,所以又补测了几次,差不多国内都要20s以上,而且极其不稳定。
- 单节点测试香港和美东VA(图6.2、图6.3),一个6.3s一个9.6s,非常神奇的竟然还是香港快。不过给的proformance的评分基本都是F(图6.4)
- 国内测试大约在30-60k/s,美国这边测出来最快达到了1M/s,还是非常不错的。(图6.5)
(图6.1)
(图6.2)
(图6.3)
(图6.4)
(图6.5)
第四轮:cloudflare收费版
没错你没看错,补偿下百度云测试的失败,我买了收费版来测试。结果如下:
- 全球节点测试结果(图7.1),平均时间是6.1,第二次访问为3.6。这下完全正常了,上海和北京甚至超过了平均速度。看样子收费版还是不一样!测试了几次都没出现无法连接的情况,说明稳定性也提高了。
- 单节点测试香港和美东VA(图7.2、图7.3),一个13.2s一个11.3s,额。。。为什么这么慢?看了下waterfall,好像卡在服务器排队上,有将近7秒。(图7.4)
- 国内测试大约在30-60k/s,没什么变化,感觉这个数据没啥用,不提了(图7.5)
(图7.1)
(图7.4)
(图7.5)
总结:
从测试结果来看,cloudflare和百度的国内节点是共享的,因为他们最终出现的结果非常类似。而且!!他们的海外节点貌似也是共享的。像我这样的海外站点要兼顾国内和海外的,上他们是必须的,而且收费版和免费版差距也是巨大的。特别在稳定性上。
从速度来说,未加CDN>普通收费版>免费版。但是网站不是单单从速度去考量的,建议所有网站都加上CDN,他带来的安全防护以及其他周边远远大于不加。看上去百度云和cloudflare区别并不是很大,所以还是建议使用cloudflare, 毕竟是老牌大公司。
(另外发现个神奇的现象,香港和美东连接美西那边的服务器,竟然还是香港快。)
当然有条件的强烈建议上收费版,免费版不仅老抽风,而且还有比较多的问题,自己就碰到好几个,写在注意点里面了。欢迎大家补充和指点。
有几个注意点:
- cloudflare的免费版出现了一些奇怪的现象,现在发现的有:部分url的内容无法用curl读取,lightbox的JQuery失效,暂时没有找到原因,不过我怀疑是和https有关。跟进:收费版就解决了,我怀疑免费版有东西被block了
- 百度云和cloudflare的系统是互通的, 你在任意一个地方增加了域名(无论是NS还是CName)都会导致另一边deactive。
你好,我看了你的文章,真的帮助不少。但是我有写问题想请教你。我的是海外的网站,但是内容是中文的,国内有写人有跟我说过我网站特别慢,所以我最近一直在想办法解决。本来想换个服务器,但是我想了最好的办法就是用CDN了。
然后就看到了你的文章,非常感谢。
我想问我的网站客户在东南亚(马来西亚,新加坡),中国,港澳台。目前网站在国内测试要1-2分钟,真的超级慢。
1. 请问如果我没有ICP储备,可以吗?还是需要储备才可以?
2. 如果没有储备,我用Cloudflare的话会像你付费版那样快速吗?
3. 如果没有储备,还有什么方法在国内可以加速,并且保持国外速度不慢。
我的网站 https://zh.maomaochia.com
非常感谢你的文章
没有备案的网站是没办法使用国内服务的,包括CDN,没有任何办法,即便是cloudflare几千美金的企业版,没有备案也没办法使用国内节点。如果你真的在乎中国大陆用户,建议备案。没有备案的网站,想要国内快点,服务器放近点,日本、新加坡、香港等,但是也是杯水车薪,因为国内出入口带宽限制,另外我看你网站很多outsource的file,建议本地化,特别是google的一些东西,对国内优化下,国内用户不加载什么的。long way to go。
可是我看到网络上也有蛮多提供无备案的服务,并且我查看了他们做过的项目,在国内打开速度还蛮快的。不管怎样还是谢谢你的建议。
不管你用百度云还是cloudflare,都要在国内备案才能用国内节点,而如果你用百度云加速,只要域名备案,用百度云加速就能同时享受国内国外加速,国内百度节点,国外用的cloudflare节点。吃咯(百度云加速专业版才支持https)
如果用cloudflare,你的域名已经备案,也需要买Enterprise 跟客服联系,才能开启https://www.cloudflare.com/zh/network/china/ 里面宣传的中国服务器。
Enterprise版本实在是吃不消,太贵。这样看还是百度云比较爽,只要备案不仅能享受国内还能享受国外的。但是不知道为啥我体验下来cloudflare也在使用国内节点(不知道是不是错觉)
不是 pro版就可以用国内节点了吗?
之前邮件问了,需要enterprise定制。不过pro效果也非常好,免费版简直要命