Cloudflare 指定 CDN 节点与缓存配置
Cloudflare 一直是业内良心商家的典范。强大的服务,充足的免费额度,提供免费的 CDN 更是让许多小站长免收恶意攻击。但是引来过多用户,原本富裕的服务变得拥堵,也是在所难免。这时我们只能「曲线救国」,通过第三方接入来避开被「玩坏」的免费节点。
除此以外,手动处理一下缓存配置,亦可显著提升访问速度。
指定 CDN 节点
Cloudflare 免费 CDN 节点确实有些被「玩坏」,而其付费套餐门槛又有点高,对于一些小博主来说不是很必要。但依然可以借助某些奇技淫巧改善体验。
更改接入
Cloudflare 免费版是不支持 CNAME/IP 接入的,只能通过 NS 的形式接入。所以想要手动解析到特定的 CDN 节点接入,就不得不借助第三方服务 Cloudflare Partner 。
Cloudflare Partner 是一个 Cloudflare 的合作伙伴分销计划。由 Cloudflare 提供官方 API 接口,可以使用 WHMCS , Cpanel 等面板集成 Cloudflare 的 CDN 加速服务。重点是大多数第三方平台没有接入限制,也就是说可以通过 IP 接入达到指定 CDN 节点的目的。
首先自然是选取一个 Partner 接入,我选择的是 笨牛网 。他们使用 GitHub 开源面板搭建,不用担心数据隐私问题。
首先使用 Cloudflare 账号登陆奔牛网的面板,选择你要解析的域名,进入点击 变更接入 - CNAME 接入 。
注意这一步会取消当前所有解析,请先备份!
然后添加你需要的二级解析。
指定节点
这时候我们就可以将域名解析到指定 Cloudflare 节点上完成接入了。肯定不能再使用 Cloudflare 自己接自己,我们还需要另一个 DNS 服务商来完成,这里拿腾讯的 DNSPod 举例。
使用 邮箱 + 手机号 注册或者直接使用微信号登陆。DNSPod 域名可以不备案解析,目前我自己并没有遇到什么问题。
登陆进去后,进入「DNS管理 - 添加域名」,将你的域名添加进去。然后根据提示修改域名的 NS 服务器,把域名交给 DNSPod 解析。
注意这里解析的二级域名和前面添加的一致,然后模式选择 「A 接入」,内容是 Cloudflare CDN 的 IP。
你甚至可以给三网分配不同的节点,然后海外使用默认的节点,尽可能优化速度。
至于 Cloudflare IP 这里就不放了,网上有许多获取合适 IP 的方法。
缓存设置
接入 Cloudflare 时,即便在 Cache 中设置了缓存,但实际上并没有缓存至 CDN 节点。事实上,Cloudflare 高速缓存内容 默认不包括 HTML 文件,我博客中图片等资源又是放在其他位置的,所以几乎没有缓存任何内容。
但是,博客页面中并无太多动态内容,对于静态博客而言更甚,完全可以缓存至 CDN 节点以加快访问速度。这里我们通过 Cloudflare Page Rules 强行缓存所有静态内容。
将 Cache Level
调整为 Cache Everything
,从而缓存一切资源。Browser Cache TTL
为浏览器缓存周期,在此周期内请求直接从浏览器缓存获取。Edge Cache TTL
为 CDN 缓存周期,超出这个周期才会向源站更新缓存。
设置完毕后,你可以通过浏览器控制台检查页面的请求头,如果有 cf-cache-status: HIT
(表示命中缓存)或者 cf-cache-status: MISS
(表示更新缓存,周期内再访问就会命中缓存),那么你的配置就已经成功生效了。
当然,万一有某些内容需要立即更新,也可以在 Cache 设置中手动清除缓存。
后
这番配置下来并不需要多少时间,但是得到的回报还是比较丰厚的。通过第三方平台接入,我们又可以免费薅上 Cloudflare 一把。
建议通过一些多点地网络工具测试一下上述 IP 在国内的连接效果,选择更合适的节点。