网站做完了,辛辛苦苦上线了,用户打开却一直在转圈圈,图片刷不出来,页面卡得人想摔手机。我帮朋友排查网站加载慢的问题好几年了,十个案例里八个最后都落到同一个解决方案上:把网站接入 CDN。这期就围绕"网站CDN加速哪个好"这个话题,把免费 CDN 怎么选、怎么接入、有哪些坑一次讲透。文章会推荐 10 个有免费套餐的 CDN 服务商,按场景给出选型建议,并附上我自己的接入实测记录。无论你是个人博客站长、前端开发者,还是企业官网、电商项目的负责人,这份清单都能帮你少走不少弯路。
1. 为什么网站需要CDN:先搞懂加速的本质
1.1 网站变慢,到底卡在哪一环
很多站长对"网站慢"这件事只有一个模糊的感受,但实际上"慢"可以拆解成几个不同的环节。第一个是 DNS 解析,用户在浏览器输入域名后,本地 DNS 要去递归查询、逐级找到权威服务器,这个等待过程通常在几十到几百毫秒不等,配置不当的情况下甚至可能超过 1 秒。第二个是网络链路的物理距离,如果源站服务器在某个城市,而用户分布在各地甚至海外,数据包要在主干网上走过很长一段距离,延迟自然高。第三个是源站的处理能力和带宽,服务器带宽小、CPU 负载高,或者后端数据库响应慢,都会让每个请求变得很慢。
用一个生活中的类比来理解会更容易:你家附近只有一家大型书店,每次买书都得专门跑过去,费时费力还不一定买得到。后来书店在各大小区门口都设了书架,提前把热门书目放在离你最近的地方,你去楼下就能拿到书,省去了路上的时间,也减轻了总店的压力。CDN 就是这个分布在各个小区门口的书架网络,它的正式名称是内容分发网络,核心思路就是把内容"搬到离用户更近的地方"。
1.2 CDN做了三件事:缓存、调度、回源
CDN 系统表面上听着很复杂,但归结起来核心就三件事。第一是缓存,把源站上的静态资源,比如图片、CSS、JavaScript 文件、字体文件、视频文件,复制到全球各地的边缘节点上。第二是调度,当用户发起请求时,CDN 的全局负载均衡系统会根据用户的 IP 归属地、运营商、节点当前负载和网络质量,自动选择一个最优节点来响应用户。第三是回源,如果用户请求的资源在边缘节点上没有命中,节点会代替用户去源站拉取一次内容,存到本地之后再返回给用户,后续再有相同请求就直接命中缓存。
理解这三件事之后,你就能明白 CDN 不是万能的。它最擅长加速的是"能被缓存的内容",比如静态图片、样式文件、脚本、视频、安装包,这类资源天然适合缓存,加速效果立竿见影。而对于登录状态、购物车、实时 API 接口这类动态内容,CDN 层面往往只能做透传和有限度的优化,加速效果有限。很多第一次用 CDN 的人,接完之后发现网站还是慢,大概率是因为没搞清楚哪些请求该走缓存、哪些该直接回源。这个观念搞清楚了,后面选 CDN、配缓存规则才不至于一头雾水。
2. 挑选免费CDN必须看懂的5个关键指标
2.1 节点覆盖:免费套餐和付费套餐的差距在哪
不同 CDN 服务商的免费套餐,节点覆盖情况差异非常大。有的服务商免费版只开放部分节点,或者限制某些高级调度策略,加速效果会打折扣。有的服务商虽然全球节点很多,但在某些地区并没有优势节点,实际体验反而不如区域型服务商。我建议先想清楚网站的主要访客在哪个区域,再去评估节点覆盖。
海外 CDN 服务商如 Cloudflare,全球节点数量非常庞大,但它在国内并没有直接的 CDN 节点,国内访客访问时可能会有明显的网络波动。国内服务商如腾讯云、阿里云,大陆节点覆盖非常完善,延迟低、稳定性高,但面向海外访客时节点覆盖相对有限。所以在看"节点数量"宣传时,千万不要只看总数,要看对你目标访客所在区域实际生效的节点有多少。解决办法也很简单:接完以后,用在线拨测工具在不同地区分别测试,拿数据说话,比自己猜靠谱得多。
2.2 HTTPS支持:免费证书、强制跳转、回源协议
现在网站全站 HTTPS 已经是基本要求了,免费 CDN 通常都提供免费的 SSL 证书,能够自动申请并续期,这是很大的成本优势。但这里有个关键设置常常被忽略:CDN 到用户之间的链路是 HTTPS,CDN 到源站之间的回源链路,既可以走 HTTP 也可以走 HTTPS。
如果你的源站本身没有部署有效证书,CDN 层可以选择"仅加速 HTTP"或 Flexible 模式,用户到 CDN 是加密的,CDN 到源站则用 HTTP 明文传输。这种方式最省事,但严格来说源站和数据链路上存在被窃听的风险。如果源站已经部署了有效且可信的证书,我建议把回源方式设置为 Full (Strict) 模式,能最大程度保证链路安全。很多新手在这里犯了错,把模式设成 Flexible,但源站又配置了 HTTP 强制跳转 HTTPS,结果出现无限重定向循环,页面直接打不开。这个细节我在后面常见问题部分会专门展开讲。
2.3 免费额度的"隐形门槛":流量、请求数、刷新次数
"免费 CDN"里最值得琢磨的就是免费额度到底包含什么。一部分服务商给的是流量包,按 GB 计算,这个比较好理解。但有些服务商会额外限制 HTTPS 请求数,意思是即使流量没超,请求次数超了也会开始计费或限制服务。像阿里云、腾讯云的新用户免费体验包,通常是"一定 GB 流量 + 一定万次 HTTPS 请求"的组合,用之前最好去计费说明页看仔细。
更隐蔽的是缓存刷新的配额。CDN 加速的内容有 TTL 缓存时间,更新源站文件后,节点本地缓存不会立即失效,需要主动刷新或预热。免费套餐里,刷新 URL 和刷新目录的次数通常有每日配额限制,有些服务商对这个配额卡得比较严。如果你的站点更新频繁,每天要刷新大量资源,免费配额可能很快就用完了。我见过不止一个开发者,因为缓存刷新配额不够,在群里急得团团转,发布新版本之后用户看到的还是老页面。所以选免费 CDN 时,刷新和预热的配额数量和超额后的处理方式,一定要提前确认。
2.4 缓存规则和过期时间:免费版能不能精细控制
CDN 加速效果好不好,很大程度上取决于缓存规则配得细不细。最基础的是 TTL 设置,每种资源类型、每个路径下的资源缓存多久,都需要按实际情况调整。比如图片和静态文件可以缓存 7 天到 30 天,HTML 页面建议只缓存很短时间或者不缓存。但免费版往往在缓存规则的条数上有严格限制,比如 Cloudflare 免费版页面规则只有 3 条,这意味着你需要把最重要的规则尽量合并,用最少的规则覆盖绝大多数场景。
另一个容易忽略的参数是"忽略查询字符串"或"缓存 Key"设置。很多静态资源会带版本号参数,比如 app.js?v=3.1.2,如果开启了忽略查询字符串,用户请求的 URL 即使参数不同,也可能命中同一个缓存版本,这在发布新版本时会带来严重的缓存污染。建议对于静态资源保留查询参数参与缓存判断,或者在发布时直接修改文件名,从根本上绕过缓存问题。这些细节决定了免费套餐在实际使用中到底能发挥多少价值,不能只看厂商宣传的加速倍数。
2.5 备案要求与数据合规:免费不等于没有前提
国内云厂商的 CDN 加速服务,在大陆节点上提供服务时,通常要求域名已经完成 ICP 备案。这是使用国内 CDN 产品时绕不开的前提条件,如果域名没有备案,即便开通了 CDN,服务可能也无法使用大陆节点。所以选型前先确认自己的域名备案状态,如果还没备案,直接选国内服务商大概率会卡在这一步。
海外 CDN 服务商没有境内备案这个要求,任何域名都能快速接入,但前文已经提过,它面向国内访客的访问体验存在波动。除备案之外,数据合规也需要留意:CDN 节点分布在不同国家,网站日志和用户请求数据可能在境外节点产生和留存,如果你的业务涉及隐私数据,要提前了解服务商的日志策略和隐私协议,不要为了省一点加速费用给自己埋下隐患。整体来说,域名在境内备案就优先考虑国内厂商,面向海外访客则用海外 CDN,合规和体验两头都要兼顾。
3. 10个免费CDN加速推荐清单和适用场景
3.1 Cloudflare:免费额度最慷慨的全球方案
Cloudflare 的免费套餐在业内相当出名,不限流量,提供全球范围内的网络加速,同时附带免费的 SSL 证书、DDoS 基础防护和 Web 应用防火墙基础功能。个人博客、开源项目、外贸独立站、出海 SaaS 站点都可以用它。免费版页面规则限制为 3 条,但日常场景基本够用。需要注意,Cloudflare 在国内没有直连节点,国内访客的访问速度波动较大,建议接入前用多地拨测工具实际测一下,如果主要访客都在海外,Cloudflare 基本是首选。
3.2 腾讯云CDN:新用户免费额度+国内低延迟
腾讯云 CDN 对新用户通常提供免费体验包,包含一定量的流量和 HTTPS 请求额度,国内节点覆盖完善,延迟低。控制台上的缓存配置、刷新预热、统计分析功能都比较完整,对国内个人站和中小型企业站很友好。需要提醒的是,使用大陆节点要求域名完成 ICP 备案,如果域名还没有备案只能先跳过。新用户额度用完之后,如果不再续费,服务会恢复为按量计费或停服,建议开通时确认清楚到期后的具体策略。
3.3 阿里云CDN:免费试用流量包最稳的选择
阿里云 CDN 的新用户免费试用方案通常是赠送流量包和 HTTPS 请求包,试用期不算短,足够把网站的真实加速效果测出来。它家的 CDN 节点覆盖广,尤其是国内市场。对于已经备案的企业官网、电商站点,阿里云 CDN 是一个很稳妥的选择。控制台支持缓存刷新、文件预热、访问控制、日志管理,该有的功能都有。同样要注意免费试用额度到期后的计费规则,以及刷新配额的限制。
3.4 百度智能云CDN:搜索生态联动
百度智能云也提供新用户免费体验流量包,国内节点覆盖不错,控制台支持缓存配置、防盗链、日志分析,还内置了防刷机制。如果你的站点比较依赖百度搜索流量,用百度智能云 CDN 在生态联动上会方便一些,其他方面与阿里云、腾讯云 CDN 大同小异,建议统一按"谁家控制台更顺手、免费额度更多"来选。
3.5 又拍云CDN:开发者友好的免费联盟计划
又拍云联盟计划在国内开发者圈子里很出名,个人开发者加入后,在网站底部显著位置放置又拍云标识,就可获得每月免费 CDN 流量,该计划主要面向非商业个人站点。又拍云在国内节点和 HTTPS 支持上都做得不错,对个人博客和小型站点来说,这是一个能长期白嫖的稳定方案。需要注意,联盟计划有审核和使用规范,站点必须符合要求才能持续获得免费额度,接入前先把规则读一遍。
3.6 七牛云CDN:融合CDN+对象存储组合
七牛云本身就是做对象存储起家的,他们的 CDN 属于融合 CDN,整合了多家上游节点资源,国内覆盖有保障。注册后可以获得每月免费的对象存储空间和 CDN 下载流量,适合把图片、视频、安装包这类大体积静态资源放到七牛上加速,能给源站省下大量带宽。如果你的网站已经有专门的资源和源站分离架构,或者正在头疼图片和附件把服务器带宽吃光,七牛的免费额度非常合适。
3.7 网宿CDN:老牌厂商的体验套餐
网宿是老牌 CDN 厂商,在政企和大流量客户中口碑一直不错。针对新用户可以申请免费试用体验包,但这类大厂通常需要联系商务开通,流程没有前几家自助式那么轻量。试用套餐主要用于验证效果,免费额度到期后是否继续使用全看项目预算。如果你就是想体验一下企业级 CDN 的调度能力和节点质量,可以联系网宿商务申请试用,但别指望能长期免费。
3.8 加速乐CDN:基础防护+加速
加速乐是知道创宇旗下的 CDN 产品,免费版比较侧重安全防护,包括基础的 DDoS 防护、CC 防护,同时提供缓存加速能力。对于经常被人刷流量、打攻击的小网站来说,加速乐的免费版能同时解决"加速"和"安全"两个问题。免费版的节点数量相对有限,对访问速度不能要求太高,当作一层防护网加上基本加速是够用的。
3.9 Gcore CDN:海外低延迟的新选择
Gcore 是近年比较活跃的海外 CDN 服务商,提供免费套餐,包含一定量的流量或请求数额度,全球节点覆盖较广,特别是在欧美区域表现不错。如果你的站点面向海外用户,把 Gcore 和 Cloudflare 放在一起对比测试是完全可行的。免费套餐的具体额度可能随官方政策调整,使用前以官网最新说明为准。免费额度用完之后会自动切换为按量计费,这一点要看清楚,别不小心产生账单。
3.10 jsDelivr:开源项目静态资源的专业加速
jsDelivr 严格来说不是全站 CDN,它是专门为 GitHub、npm、WordPress 等平台上的开源项目提供静态资源免费加速的服务。不限流量,支持版本回退,前端开发者在项目中引入公共依赖库时非常常用。很多个人博客也会把图片传到 GitHub 仓库,再通过 jsDelivr 来加速访问。这个方案只适合加速静态资源,不适合整个网站接入,而且使用时要遵守它的合理使用政策,不能把它当成私人图床无限量刷流量。
| 服务商 | 免费额度特征 | 是否需要备案 | 最适场景 |
|---|---|---|---|
| Cloudflare | 免费版不限流量 | 不需要 | 海外访客为主、外贸站、博客 |
| 腾讯云 CDN | 新用户体验包,流量+HTTPS请求 | 需要 | 国内官网、电商站 |
| 阿里云 CDN | 新用户体验包,流量+HTTPS请求 | 需要 | 国内企业站、中大型门户 |
| 百度智能云 CDN | 新用户免费流量包 | 需要 | 国内站点、搜索引擎流量导向 |
| 又拍云 CDN | 联盟计划每月免费流量 | 需要 | 个人博客、非商业站点 |
| 七牛云 CDN | 每月免费存储空间+下载流量 | 需要 | 静态资源分离、大文件分发 |
| 网宿 CDN | 商务申请试用套餐 | 视情况 | 企业级体验、大流量验证 |
| 加速乐 CDN | 免费版基础防护+加速 | 需要 | 小站点防护+加速 |
| Gcore CDN | 免费额度,流量/请求数限制 | 不需要 | 海外业务、面向欧美用户 |
| jsDelivr | 开源静态资源不限流量 | 不需要 | 开源库、GitHub上的静态文件 |
4. 不同场景下的CDN选型实操建议
4.1 个人博客和小流量站点怎么选
个人博客的特点是访问量不大,但想要覆盖不同地区的读者,同时不想在这个项目上花一分钱。我的建议是先看访客结构,如果你的博客技术含量高,海外读者多,直接上 Cloudflare 免费版即可,它能帮你扛住突发流量,SSL 证书这些也省了。如果访客主要在国内,又不想备案,那就有点麻烦,因为国内大厂的 CDN 都要求备案。这种情况下可以先把域名备案做起来,然后考虑又拍云联盟计划,或者七牛云的对象存储加 CDN,把图片和静态资源分流出去,源站压力瞬间小很多。
流量不大不等于没有风险,小站点也经常会被扫描攻击,建议随手开启 CDN 自带的防护能力,比如 Cloudflare 的防护模式或加速乐的 CC 防护。另外,小站点更新频繁,需要注意免费 CDN 的刷新配额,每天最多刷新多少次,心里要有数。如果更新比较频繁,宁可把 CSS 和 JS 的缓存时间设短一些,也别依赖刷新功能去做即时更新。
4.2 面向国内用户的电商和企业官网怎么选
电商和企业官网对稳定性和访问速度的要求明显高于个人博客。这类站点的访客绝大多数在国内,优先选国内云厂商的 CDN,阿里云、腾讯云、百度智能云都行,核心看免费额度用完后的续费价格和控制台体验。备案是前提条件,必须在接入 CDN 前完成。电商站有一个特别容易踩的坑:把购物车、登录、订单查询这类动态接口也配置了缓存,导致用户看到别人的登录态或者旧库存数据。合理的做法是只对图片、商品图、CSS、JS 这类静态资源做缓存,动态接口一律绕过 CDN 或设置极短 TTL。
电商场景还要关注源站的带宽和并发能力。CDN 能挡住大部分静态请求,但如果遇到秒杀、大促这类突发流量,回源压力仍然会很大。建议提前在 CDN 控制台上把源站限流、回源超时等参数配置好,并开启访问日志,方便事后排查问题。企业官网如果以品牌展示为主,对动态性要求不高,可以适当放宽缓存策略,将整页 HTML 也缓存几分钟,能显著降低源站负载。
4.3 出海业务和海外访客占主力的站点怎么选
如果你的业务本来就是做海外市场的,用户分布在美国、欧洲、东南亚等地,那答案比较明确:优先选 Cloudflare 免费版,它是目前覆盖范围最广、免费额度最慷慨的服务之一。如果某些区域想要更好的性能和稳定性,可以叠加 Gcore 的免费套餐做分流,或者对核心静态资源启用多个 CDN 做容灾。这里有个要点是回源线路,海外 CDN 要回源到你的服务器,两者之间的国际链路质量决定了整体速度,建议把源站放在离主要用户区域较近的机房,或者直接用对象存储托管静态资源,减少回源链路损耗。
面向海外访客的站点,还要注意 DNS 的解析速度和 TTL 设置。很多出海站在国内注册域名,用国内 DNS 服务商,海外用户解析时可能延迟偏高。建议将 DNS 托管到 Cloudflare 这类全球解析能力较强的平台,并适当缩短 TTL,方便后续切换 IP 时快速生效。对于外贸站来说,接入 CDN 之后一定要检查目标国家的访问速度,别只盯着国内体验。
4.4 静态资源和开源项目场景怎么选
如果你运行的是一个开源项目文档站,或者想把博客中的图片独立出去加速,jsDelivr 加 GitHub 的组合几乎零成本。把图片文件提交到 GitHub 仓库,通过 jsDelivr 的 CDN 链接访问,可以利用全球节点加速,也不用自己买服务器带宽。但要注意 jsDelivr 有合理使用限制,它是给开源项目用的,不是私人图床,流量过大会被限制,最好只用来放博客配图这类轻量资源。
对于视频、安装包这类大文件,jsDelivr 不合适,建议用七牛云的对象存储加融合 CDN,或者国内大厂的 CDN 产品。大文件场景最怕的是流量突发导致费用爆掉,建议给 CDN 设置流量封顶,开通超额提醒,并且给回源配置限速。静态资源分离这种架构做得好,源站带宽利用率能降到原来的 10%,服务器 CPU 和内存压力也会小很多,值得每个站长认真对待。
5. 免费CDN接入实测记录和配置要点
5.1 以Cloudflare为例:从注册到加速生效的完整流程
我用 Cloudflare 免费版给一个测试博客做接入,整个流程大概二十分钟。第一步是注册账号并添加站点,填入你的主域名,选择 Free 套餐,之后 Cloudflare 会自动扫描并导入当前的 DNS 记录。第二步是去域名注册商处修改 Nameserver,把原来的 DNS 服务器改成 Cloudflare 分配的两个 NS 地址。这一步是很多人卡住的地方,NS 修改生效需要几十分钟到几小时不等,这个期间域名解析会有短暂的不稳定,建议选择工作日低峰期操作。
NS 生效之后,Cloudflare 会显示 Active 状态,此时流量已经经过 CDN 节点了。接下来进入 SSL/TLS 设置页,我选择的是 Full (Strict) 模式,因为源站已经配置了受信任的证书。然后设置缓存规则,我把 /wp-content/ 这类静态资源目录缓存时间设为 7 天,HTML 页面不缓存,登录后台路径 wp-admin 明确绕过 CDN。这里特别注意,Cloudflare 免费版只有 3 条页面规则,一定要把最重要的规则合并好,比如后台路径只占一条,静态资源缓存一条,HTML 短缓存一条,刚好够用。
最后是验证效果。我用了在线拨测工具,从国内多个城市测试接入前后的首屏时间,静态资源请求耗时下降了将近一半。DNS 切换期间的分钟级波动确实存在,但等 NS 完全生效后稳定性恢复。整个接入过程没有动源站代码,只改了一次 DNS,这是 Cloudflare 最吸引人的地方。
5.2 国内CDN(阿里云/腾讯云)接入流程差异
国内 CDN 的接入流程和 Cloudflare 有较大差异。第一步同样是在控制台添加加速域名,填写源站信息,这里源站可以填 IP 也可以填源站域名。第二步是设置回源 HOST,这应该是新手最容易出错的配置。回源 HOST 指的是 CDN 节点回源时请求的目标域名,如果你的源站服务绑定了多个域名,回源 HOST 填错会导致 404 或者访问到错误的站点。第三步是添加 CNAME 记录,国内 CDN 不会要求改 NS,而是提供一个 CNAME 地址,让你去 DNS 服务商处添加一条记录。
这里有一个关键区别:CNAME 记录不能和主域名的 A 记录共存,如果你想把主域名 example.com 本身接入 CDN,通常需要在 DNS 服务商处把 A 记录改成 CNAME,或者使用支持 CNAME Flattening 的 DNS 服务商。如果只想让 www.example.com 和静态资源域名 cdn.example.com 走 CDN,那就简单多了,直接添加对应 CNAME 记录即可。之后需要到 CDN 控制台配置 HTTPS 证书,国内厂商通常支持免费证书自动签发,也支持上传自定义证书。
配置完成后,可以通过 CDN 控制台提供的"验证 CNAME 生效"功能来确认状态。如果显示未生效,多半是 DNS 缓存还没刷新,或者记录值填错了。国内 CDN 的加速域名如果使用大陆节点,必须已经完成 ICP 备案,这点在添加域名时系统会直接校验,没备案的话会报错,需要先把备案流程走完。整个国内 CDN 接入比 Cloudflare 多几层配置,但控制台每一步都有提示,仔细点基本不会出大错。
5.3 缓存配置里的常见翻车点:TTL、忽略参数、刷新
缓存配置是接入 CDN 之后最值得花时间研究的环节。第一个翻车点是 TTL 设得太长。有人觉得缓存时间越长越好,把 HTML 页面也设成 24 小时,结果每次发布文章后用户要等一天才能看到新内容。正确的思路是按资源类型区分:图片、视频、字体这类不易变化的资源可以缓存 7 到 30 天;CSS、JS 文件建议缓存 1 到 7 天,并在发布时通过文件名加版本号或 query 参数来主动更新;HTML 页面要么不缓存,要么只缓存 60 到 600 秒,保证内容新鲜度。
第二个翻车点是"忽略查询字符串"这个参数。很多 CDN 控制台里有这个开关,如果你开启了忽略查询参数,那么 app.js?v=1.0 和 app.js?v=2.0 会被视为同一个资源,用户可能拿到旧版本。我建议对静态资源关闭忽略查询参数,或者干脆给静态文件改名发布,从根源上避免缓存混乱。第三个翻车点是缓存刷新操作不及时,发布新版本后发现线上还是旧的,多数是没刷新 CDN 缓存。刷新操作有配额限制,免费额度用完了就只能等 TTL 自然过期,所以重要更新尽量集中提交刷新任务。
5.4 源站日志和监控:别等用户投诉才发现问题
接入 CDN 并不代表一劳永逸,源站还需要保留足够的日志和监控能力。CDN 会把用户请求转发到源站,源站日志里能看到真实的回源请求,通过对比 CDN 控制台的访问日志,可以判断缓存命中率是否正常。如果命中率很低,说明缓存规则没配好,大量请求都在回源,加速效果自然不明显。一般静态资源站的缓存命中率应该能到 90% 以上,如果远低于这个数值,优先检查缓存规则和 TTL 设置。
监控方面,建议给源站配上基础的告警规则,比如 CPU、带宽、回源 5xx 错误率的告警。CDN 挡掉了大部分流量,源站的负载曲线会比较平稳,一旦出现异常峰值,很可能是缓存大规模失效或者被恶意刷量。另外,很多 CDN 控制台提供免费的基础用量告警,云厂商的短信或邮件通知完全够用。把日志和监控提前配好,后续排查任何问题都能省一半时间。
6. 常见问题与排查技巧实录
6.1 接入后网站打不开:5xx错误排查思路
接入 CDN 后最常见的翻车现场是首页直接 502、521 或 523。这类错误的本质通常是 CDN 节点无法成功从源站获取内容。排查顺序建议从外到内:先确认源站本身是否正常,直接用本地 curl 请求源站 IP,如果源站本身返回 5xx 或超时,问题就不在 CDN;然后检查回源配置,看源站地址、回源 HOST、回源端口是否填写正确;接着检查源站防火墙或安全组是否放行了 CDN 回源 IP 段。
有些人在源站开启了白名单机制,只允许某些 IP 访问,但没把 CDN 回源 IP 加入白名单,结果用户访问全部失败。这种情况在云服务器安全组和宝塔等面板里很常见。还有一类是源站 SSL 证书配置不完整,CDN 使用 Full (Strict) 模式回源时,如果源站证书是自签名的或已经过期,连接会被拒绝,报 525 或 526 错误,这时要么换用 Full 模式,要么把正确的证书部署到源站。
6.2 HTTPS重定向循环:证书模式与源站跳转冲突
这是一个非常经典的案例。某个站点接入 Cloudflare 后,访问首页发现提示"重定向次数过多"。排查后发现了问题链条:用户在浏览器访问 https://example.com,请求先到了 Cloudflare,由于 SSL/TLS 模式设置成了 Flexible,Cloudflare 向源站发起的是 HTTP 请求。而源站的 Nginx 配置了强制 HTTP 跳转 HTTPS,于是源站返回 301 跳转,把请求指回 https://example.com,浏览器再次发起请求,又一次走到 Cloudflare,又一次回源,又一次 301,循环往复,页面永远加载不出来。
解决思路是让 CDN 回源时直接使用 HTTPS,也就是把 SSL/TLS 模式改为 Full 或 Full (Strict),这样源站收到的是 HTTPS 请求,不会再触发跳转逻辑。如果源站确实不支持 HTTPS,那就反过来,把源站的强制跳转临时关掉,让 CDN 层统一处理跳转。这类问题在接入 CDN 后特别常见,核心是要理解"用户到 CDN"和"CDN 到源站"是两条独立的链路,证书和跳转策略都要分别梳理。
6.3 缓存污染:后台登录态被缓存和重要页面更新不及时
缓存污染是最容易让开发者崩溃的问题。表现很典型:后台登录之后,页面显示的却是另一个用户的信息;或者发布了一篇文章,但所有访客都看不到更新。前者的原因通常是动态 URL 也被 CDN 缓存了,而 CDN 的缓存 key 只包含 URL,不包含 Cookie 或登录态,于是不同用户访问同一个 URL 时,命中了同一个缓存副本。解决办法是在 CDN 缓存规则里明确排除后台路径、登录接口、购物车、个人中心这类动态 URL,或者把这些请求设置为不缓存。
后者的原因则是 HTML 页面 TTL 太长且没有主动刷新。我的习惯是 HTML 页面默认不缓存,或者只缓存 60 秒,静态资源缓存时间拉长。如果确实需要缓存 HTML,发布之后马上到 CDN 控制台提交一次刷新任务。另外,很多开发者为了方便,所有页面都用同一个缓存规则,这是缓存污染的高危操作,一定要按路径和文件类型细分规则。
6.4 CDN源站被打垮:免费CDN不是保险箱
虽然 CDN 有防护能力,但便宜和无限制的防护并不存在。免费版 CDN 能抵御一些小规模的扫描和压力攻击,但面对有组织的重流量攻击,免费版很难完全扛住,而且某些 CDN 服务商明确规定,免费套餐如果遭遇异常攻击流量,可能会直接限制服务或要求升级。所以对于重要的网站,不要把免费 CDN 当成万无一失的安全保险。
在攻击发生之前,建议做几件事:源站服务器只对 CDN 回源 IP 开放 80 和 443 端口,从网络层减少暴露面;源站部署基础的限流和防暴力破解策略;CDN 控制台开启安全防护,拦截可疑 IP;为源站设置带宽和并发告警。真正到了紧急时刻,可以临时考虑付费防护或换用防护能力更强的服务商,但这些都是亡羊补牢,日常就把源站藏好才是最有效的。
6.5 常见问题速查表
| 现象 | 可能原因 | 解决建议 |
|---|---|---|
| 接入后 502/521 错误 | 回源源站不可达、防火墙拦截回源 IP、回源 HOST 配置错误 | 先绕开 CDN 直连源站测试,再逐项检查回源配置和安全组 |
| HTTPS 无限重定向 | SSL/TLS 模式 Flexible 与源站强制跳转冲突 | 改用 Full 或 Full (Strict),或在源站临时关闭跳转 |
| 登录状态串用户 | 动态 URL 被缓存,缓存 key 未区分离线状态 | 后台、登录、购物车等路径设置不缓存 |
| 新版本发布后还是旧页面 | TTL 过长或未刷新缓存 | 发布后主动刷新,或给静态资源加版本号 |
| 缓存命中率极低 | 缓存规则太粗,TTL 太短,大量请求回源 | 细分静态资源目录,拉长静态资源 TTL |
| 免费额度突然用尽 | 访问量增长或遭到刷量 | 设置用量告警,配置流量封顶,优化缓存降低回源量 |
最后分享几点使用免费CDN的个人体会
免费 CDN 对中小网站和开发者来说确实是性价比极高的基础设施,但"免费用"不代表"不用管"。我自己在接入使用时,最深的体会是两点:一是接入初期花半小时把缓存规则、SSL 模式、回源 HOST 这些细项都确认好,后面至少能省下十个小时的排障时间;二是永远给自己的源站留一条"后路",保持直接通过源站 IP 访问的能力,这样即使 CDN 出了任何问题,也能立刻确定问题出在 CDN 还是源站。
如果你正在几个免费 CDN 之间犹豫不决,我的建议是别光看评测,直接挑两个候选服务商,把同一个测试站分别接入,用拨测工具实测三天,看首屏耗时、缓存命中率和稳定性数据,哪个好就留哪个。CDN 这东西,别人说再好,都不如自己测出来的数据靠谱。希望这份推荐清单和踩坑记录,能帮你少走弯路,把网站速度这件事一次做对。