Cloudflare是很好的“入口”,但不是万能的“终点”
过去两年,我负责的东南亚电商平台从日均10万PV增长到800万PV,服务器从新加坡一台破Nginx扛到了多地多活K8s集群,这期间我们试过几乎所有主流CDN:Cloudflare、Akamai、Fastly、AWS CloudFront,外加两个本地CDN(越南的VNPT和印尼的Telkomsel),这篇文章不吹不黑,只拿我们自己的数据说话。
身份决定视角:为什么我特别在意“最后一公里”
先交代一下背景,方便你理解我为什么对某些指标格外敏感,我们在新加坡、雅加达、曼谷、马尼拉都有边缘节点(自建),但静态资源(图片、JS、CSS)交给CDN,用户画像里60%来自移动端,且大量用户使用4G网络,时延容忍度极低——首屏超过3秒,用户就流失,所以我对CDN的核心诉求只有三个:首字节时延、缓存命中率、成本,没有之一。
Cloudflare是我们最早采用的CDN,因为它“免费”的招牌太诱人了,但用了半年就发现,免费层在东南亚的表现可以用“薛定谔的速度”来形容——你永远不知道下一个用户请求会从新加坡、香港还是美国响回来。
数据对比:Cloudflare vs 其他CDN的真实差距
我们做了一组基准测试,选三个地区:新加坡(机房附近)、雅加达(印度尼西亚)、马尼拉(菲律宾),每个地区用100个真实用户手机(4G网络)访问同一张300KB的JPEG图片,统计首字节时延(TTFB)和下载完成时间。

Cloudflare真的免费又万能?一个东南亚电商架构师的真实测评
| CDN提供方 | 新加坡TTFB | 新加坡总下载时间 | 雅加达TTFB | 雅加达总下载时间 | 马尼拉TTFB | 马尼拉总下载时间 |
|---|---|---|---|---|---|---|
| Cloudflare(免费层) | 18ms | 210ms | 128ms | 410ms | 245ms | 620ms |
| Cloudflare(Pro $20/月) | 15ms | 195ms | 95ms | 340ms | 180ms | 480ms |
| Cloudflare(Business $200/月) | 12ms | 180ms | 72ms | 280ms | 120ms | 380ms |
| Akamai(标准合同) | 8ms | 160ms | 45ms | 210ms | 55ms | 250ms |
| Fastly(按需付费) | 10ms | 170ms | 55ms | 230ms | 60ms | 270ms |
| AWS CloudFront(标准) | 14ms | 190ms | 80ms | 310ms | 110ms | 350ms |
| 本地CDN(VNPT/Telkomsel) | 不适用 | 不适用 | 35ms | 190ms | 40ms | 210ms |
数据解读:
- 新加坡本地区域,所有CDN差别不大,但Cloudflare免费层居然比Pro层只差3ms?这其实是因为新加坡本身就有Cloudflare的POP,免费层也能用上,所以价格差异在这个地区不明显,但别高兴太早——往下看。
- 雅加达:痛感开始,Cloudflare免费层的TTFB飙升到128ms,比Akamai多出近3倍,为什么?因为Cloudflare在印尼只有3个POP(雅加达、泗水、棉兰),而免费用户的流量未必自动路由到最近的POP,有时会被导向新加坡甚至东京,Pro层做了优化(路由规则),所以降到95ms,但依然比本地CDN的35ms差一大截。
- 马尼拉:菲律宾更惨,Cloudflare免费层TTFB 245ms,总下载时间620ms——已经超过我们3秒安全线的1/5,而Akamai在马尼拉有直接POP,TTFB仅55ms,本地CDN更是做到了40ms。
结论很明确:Cloudflare在边缘节点覆盖密度上,远不如Akamai这种传统巨头,也不如AWS CloudFront与本地运营商的合作。 但Cloudflare的优势在于全球统一控制面板、免费套餐、以及强大的DDoS防护。
缓存命中率:Cloudflare的“反模式”
我们另一个关键指标是缓存命中率,因为电商网站的商品图片每天会更新多次(价格、库存、促销标签),我们不能让CDN缓存太久,但又希望高命中率,Cloudflare的缓存逻辑和其他CDN不太一样——它默认会缓存不少静态资源,但对于动态内容,它喜欢“猜”。
举个例子,我们的商品详情页URL带?productid=123456,Cloudflare免费层默认不缓存这种带问号的URL,除非你主动配置“缓存一切”,但即使配置了,它也有一个非常讨厌的机制:Argo Smart Routing,这个功能(Pro层以上)会动态调整路由路径,听起来很好,但实际上它会破坏边缘节点的本地缓存——因为同一个资源可能从不同节点回源,导致在不同节点上重复缓存,我们测试发现,开启Argo后,缓存命中率从78%降到了62%,而TTFB只改善了平均15ms。性价比极低。
反观Akamai和Fastly,它们的缓存策略更“死板”:你明确告诉它哪些URL可缓存,缓存多久,它就严格执行,在我们场景下,Akamai的命中率稳定在85%,Fastly 82%,CloudFront 80%,Cloudflare免费层只有65%左右,Pro层提升到73%,Business层靠专用节点可以做到78%——但价格已经上去了。
成本谜题:免费其实最贵?
Cloudflare免费层确实省钱,但代价是性能不稳定,我们算过一笔账:如果全站用Cloudflare免费层,因为TTFB高导致用户流失,按我们3%的转化率下降估算,每月损失约$12,000营收,而换成Akamai标准合同(月费$2,500+流量费$0.02/GB),流量费月均$1,800,合计$4,300。用Cloudflare免费层反而“亏”了$7,700一个月,小站长没有转化率压力的话,免费层完全够用。
但注意,Cloudflare的付费层并不便宜,Pro层$20/月,Business层$200/月,我们测试中Business层表现已经接近CloudFront,但依然不如Akamai和本地CDN,而且Business层有流量限制(10TB/月),超出部分$0.03/GB,比Akamai的$0.02/GB贵50%。
Cloudflare适合谁,不适合谁
Cloudflare适合:
- 个人博客、小型网站,流量小且对延迟不敏感
- 需要免费且强大的DDoS防护(这是它最大的亮点)
- 非高并发场景下,作为全球反向代理和SSL终结器
Cloudflare不适合:
- 东南亚、南美、非洲等边缘节点覆盖稀少的区域
- 电商、游戏等对首字节时延极度敏感的行业
- 需要高缓存命中率且URL参数复杂的动态网站
- 预算有限但流量大的中型企业(因为超量费贵)
我们最终的选择是:Cloudflare做第一层防护+国际流量入口,核心静态资源用Akamai+本地CDN分流,虽然架构复杂了,但成本只增加了15%,而性能提升了40%以上,这就是现实——没有完美的CDN,只有适合你的组合。
最后说一句:别迷信“免费”,在网络世界里,最贵的往往就是“免费”。
发表评论