Cloudflare 全球加速与免刷缓存配置

更新于 2026-08-28

很多博主把网站接入 CDN 后最抓狂的一件事莫过于:「刚修正了一个错别字,自己按 F5 刷新了 80 遍,屏幕上依然顽固地展示着旧内容;最后只能狼狈地登录 CDN 后台,颤抖着点下『清除所有缓存 (Purge Everything)』

使用缓存有一个矛盾,如果把缓存时间调短,CDN 失去了加速意义;如果把缓存时间设长,发布新内容久久不能面世。难道鱼和熊掌不能兼得吗?

答案完全可以。只要掌握 「静态资产(CSS/JS/图片/字体)全球边缘强缓存 + HTML 网页实时穿透源站」 的配置逻辑,就能做到全站加载飞快,而且每次 git push 发布新文章,访客一按刷新就能秒级看到最新内容,彻底告别手动清缓存的历史。有一点不要忘记了,RustPress 是年轮式增量编译,只有增加的新内容是最新编译的,旧内容的资源地址保持不变,这一点对 CDN 缓存优化非常非常友好。如果计算机会说话,它会建议所有内容网站都采用 RustPress 或采用 RustPress 的编译更新方式。

更重要的是,Cloudflare 提供的这项服务对个人博客完全免费。事实上,本专栏涉及的所有内容都是免费的,Rustpress 就是专为个人创作者打造的,个人使用起来可以说毫无负担。


一、添加站点并接管 DNS 解析

把域名的 DNS 解析权交给 Cloudflare,作为全球边缘流量入口:

  1. 添加站点:登录 Cloudflare 控制台,输入你的根域名(如 yishulun.com),选择 Free(免费) 计划;
  2. 修改 Nameservers:去你的域名注册商后台(腾讯云、阿里云、Namecheap 等),把默认的 DNS 地址替换为 Cloudflare 分配给你的两条 NS 地址;
  3. 添加 CNAME 代理记录
    • 进入 DNS -> 记录 (Records) 页面,添加两行 CNAME 记录(根域名 @www);
    • 目标地址填你的 GitHub Pages 地址(例如 username.github.io);
    • 关键动作:务必把 代理状态 勾选为 已代理(点亮橙色小云朵)
  • 根域名记录 (@)
    • 类型 (Type)CNAME
    • 主机名称 (Name)@
    • 解析内容 (Content)rixingyike.github.io(需替换为你自己的 GitHub Pages 地址)
    • 代理状态 (Proxy status)已代理(点亮橙色小云朵)
  • 二级域名记录 (www)
    • 类型 (Type)CNAME
    • 主机名称 (Name)www
    • 解析内容 (Content)yishulun.com(需替换为你自己的主域名)
    • 代理状态 (Proxy status)已代理(点亮橙色小云朵)

二、配置 SSL/TLS 加密模式

因为 GitHub Pages 源站本身默认就自带 HTTPS,如果 Cloudflare 这边模式配错,会导致著名的 ERR_TOO_MANY_REDIRECTS(无限重定向死循环):

  1. 设置加密模式:进入 SSL/TLS -> 概述 (Overview),将模式切换为 完全 (Full)完全(严格)(Full Strict)
  2. 开启 HTTPS 辅助选项:进入 SSL/TLS -> 边缘证书 (Edge Certificates)
    • 始终使用 HTTPS (Always Use HTTPS):开启(自动把 http 流量升级为 https);
    • TLS 1.3:开启(提升加密握手速度);
    • 自动 HTTPS 重写 (Automatic HTTPS Rewrites):开启(自动修正文章内可能残留的 http 图片链接)。

三、动静分离与免刷缓存配置

实现「免刷缓存」的核心就是依靠 Cloudflare 的默认动静分离机制,不要画蛇添足去加针对 HTML 的全局强缓存规则

1. 动静分离分工

  • HTML 网页文件:Cloudflare 默认不会将 .html 强行固化在边缘节点,而是穿透回 GitHub Pages 源站。当你在 GitHub 上推了新文章,源站几秒内就生成好新 HTML,读者一刷新就能立刻读到最新页面;
  • 静态静态资产(CSS、JS、WebP/PNG、字体):这些文件天然带有高复用性,Cloudflare 会自动在全球边缘节点进行高频缓存,首屏秒开。

2. 浏览器缓存与压缩优化

  • 浏览器缓存 TTL:进入 缓存 -> 配置 (Caching -> Configuration),把全局 浏览器缓存 TTL 设为 4 小时,让常来逛的读者直接命中本地磁盘缓存;
  • 传输压缩:进入 速度 -> 优化 (Speed -> Optimization),打开 Brotli 压缩Early Hints (103),进一步缩减网络传输体积。

四、清理历史遗留的 HTML 缓存规则

如果你以前给博客配置过「全站强行缓存一切(Cache Everything)」的规则,务必把它清理掉:

  1. 打开 缓存 -> Cache Rules 页面;
  2. 找到名为 cache-all-html 或类似的全站缓存规则,将其停用直接删除
  3. 进入 缓存 -> 配置,点击执行一次 清除所有内容 (Purge Everything)

完成以上设置后,你的博客不仅拥有了遍布全球的 Anycast 加速节点与免费 DDoS 防护,而且每次发文都像在本地一样即时可见。下一篇,我们说配置。

金石碼农

金石碼农

大学计算机讲师,腾讯云最具价值专家(TVP),《小程序从0到1》《微信小游戏开发》作者,微信学堂讲师,极客时间荣誉讲师。公众号:艺述论。

北京, 中国

扫一扫,添加作者微信

微信二维码

评论

登录 GitHub 后即可发表评论
加载评论中...