枯木逢春-我于北京
1511 字
8 分钟
Cloudflare进阶技巧之CDN 最佳实践:设定、缓存与效能提升
Cloudflare 的内容分发网络 (CDN) 是现代网站优化的核心武器,但许多网站所有者仅使用了其基本功能,完全没有发挥其全部潜力。根据实际统计,正确设置的 Cloudflare CDN 可以将网站加载时间减少高达 50-70%,大幅提升用户留存率和转换率。本文将深入探讨如何完全释放 Cloudflare CDN 的强大性能,确保所有内容得到最佳缓存,并为您的访客提供闪电般的体验。
1 了解 Cloudflare CDN 的核心原理
- Cloudflare CDN 本质上是一个内容分发网络和反向代理云提供商,拥有遍布全球的服务器网络。 当用户访问您的网站时,Cloudflare 会拦截请求并从最近的服务器提供缓存内容,大幅减少延迟时间。
- Cloudflare 的全球网络涵盖 335 个据点,能够将内容尽可能靠近您的最终用户 - 约 95% 的网络连接人口都能在约 50 毫秒内得到响应。 这种广泛的全球网络使 Cloudflare 能够在保持最高性能和弹性的同时,以最大规模交付静态和动态内容。
2 解决 Cloudflare 默认缓存的限制
很多网站管理员不知道的是,Cloudflare 默认的缓存行为有严格限制:
- Cloudflare 仅根据文件扩展名缓存,而不是按 MIME 类型
- 默认情况下不会缓存 HTML 或 JSON 文件
- 许多网站管理员发现大部分资源被标记为「动态」,因此不被缓存
- 这就是为什么许多用户在使用 Cloudflare 时,发现大约只有 0.02% 的内容实际被 Cloudflare 缓存并服务。 如果不进行适当设置,您实际上可能完全没有利用到 CDN 的主要优势。
3 节点选择
- 针对中国用户,选择最快的 Cloudflare 节点,例如移动(172.64.32.1/24,香港)、电信(104.16.160.1/24,洛杉矶)、联通(108.162.236.1/24,美国)。
- 可通过 Cloudflare Partner(如 BNXB, https://cdn.bnxb.com/ )使用 CNAME 解析自定义节点。
4 启用「Cache Everything」设置的关键步骤
要最大化 Cloudflare 的缓存潜力,必须启用「Cache Everything」功能。这有两种方法
4.1 通过页面规则设置
- 登入 Cloudflare 仪表板并选择您的域名
- 点击左侧的「Rules」
- 选择「页面规则」
- 点击「创建页面规则」
- 在 URL 匹配模式中输入:
*yourdomain.com/*
(替换为您的域名) - 在设置中选择「Cache Level」并将其设为「Cache Everything」
- 点击「保存并部署页面规则」
4.2 通过 Cache Rules 设置(推荐方法)
- 前往 Cloudflare 仪表板选择您的域名
- 点击「Caching」选项卡
- 选择「Cache Rules」子页面
- 创建新规则,条件设为「All incoming requests」
- 在「则…」部分,将「缓存资格」设为「符合缓存条件」
- 将「边缘 TTL」设为「如果存在,使用缓存控制标头,如果不存在,使用 Cloudflare 的默认 TTL 缓存请求来获取响应状态」
- 储存设置
5 优化缓存控制头部设置
为确保最佳缓存效果,您需要正确设置 Cache-Control 头部并确保 Cloudflare 尊重这些头部:
- 前往 Cloudflare 仪表板的「缓存」>「配置」
- 将「浏览器缓存 TTL」设为「尊重现有标头」
- 禁用「Always Online™」(如果已启用)
- 在您的源伺服器上,应根据资源类型设置不同的缓存头部:这种设置可以确保静态资源被长时间缓存,而动态内容始终保持最新
资源类型 | 建议的 Cache-Control 头部 |
---|---|
静态版本化资源(如 CSS、JS) | public, max-age=31536000, immutable |
动态资源(如 HTML 页面) | cache-control: max-age=0,must-revalidate,public |
这种设置可以确保静态资源被长时间缓存,而动态内容始终保持最新。
6 启用高级性能协议
Cloudflare 提供多种协议优化选项,可以显著提升网站性能:
6.1 HTTP/2 和 HTTP/3 启用步骤
- 登入 Cloudflare 仪表板
- 导航至「速度」>「优化」
- 在「Protocol Optimization」部分,启用以下选项:
- HTTP/2 和 HTTP/3(使用 QUIC)
- HTTP/2 到原点
- 0-RTT 连接恢复
这些协议优化可以减少延迟,提高资源利用率,并加快加载时间。特别是同时启用 HTTP/2、HTTP/3 和 0-RTT Connection Resumption 的组合效果最佳。
7 内容优化设置
Cloudflare 提供多种内容优化工具,可以进一步加速网站:
7.1 关键内容优化选项
优化选项 | 功能 | 建议设置 |
---|---|---|
Cloudflare Fonts | 在 Cloudflare 伺服器上缓存常用网络字体 | 开启 |
Early Hints | 向浏览器发送有关即将到来的资源的初步提示 | 开启 |
Rocket Loader™ | 优化 JavaScript 加载方式 | 开启 |
Mirage | 根据访问者的设备和网络状况优化图像加载 | 开启 |
Minify | 压缩的 HTML、CSS 和 JavaScript | 开启所有 |
8 缓存大小限制和优化策略
了解 Cloudflare 对不同计划的缓存限制也很重要:
8.1 各计划的缓存限制
计划类型 | 最大上传大小 | 可缓存文件限制 |
---|---|---|
Free | 100 MB | 512 MB |
Pro | 100 MB | 512 MB |
Business | 200 MB | 512 MB |
Enterprise | 500+ MB | 5 GB(可请求增加) |
对于超过限制的文件,可以通过分组请求或使用非代理 DNS 记录上传完整资源。
9 安全性与性能的平衡
9.1 安全与性能并重的设置
- 设置速率限制规则防止攻击,例如:
URL: /*Action: Rate-limitRequests: 100 per minute
- 限制源伺服器只允许来自 Cloudflare IP 范围的流量
- 考虑使用 Cloudflare Tunnels 完全不暴露任何入站端口
10 监控与优化缓存效果
10.1 设置完成后,持续监控和优化缓存效果至关重要
- 使用 Chrome 开发者工具检查响应头中的「cf-cache-status」。 「HIT」表示资源已被缓存
- 考虑使用 Dr. Flare 等 Chrome 扩展分析网站,了解有多少内容来自 Cloudflare 缓存
- 定期检查 Cloudflare 分析,了解缓存命中率和性能指标
11 还有更多的优化攻略 (持续更新)
12 相关参考学习链接
Cloudflare进阶技巧之CDN 最佳实践:设定、缓存与效能提升
https://blog.fuxieyi.top/posts/cloudflare进阶技巧之cdn-最佳实践设定缓存与效能提升/