ChrAlpha's Blog

Thumbnail-Cloudflare%20%E6%8C%87%E5%AE%9A%20CDN%20%E8%8A%82%E7%82%B9%E4%B8%8E%E7%BC%93%E5%AD%98%E9%85%8D%E7%BD%AE

Cloudflare 指定 CDN 节点与缓存配置

2020-02-28·笔记本

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 接入

unalted image

奔牛网第三方接入

注意这一步会取消当前所有解析,请先备份!

然后添加你需要的二级解析。

unalted image

指定节点

这时候我们就可以将域名解析到指定 Cloudflare 节点上完成接入了。肯定不能再使用 Cloudflare 自己接自己,我们还需要另一个 DNS 服务商来完成,这里拿腾讯的 DNSPod 举例。

使用 邮箱 + 手机号 注册或者直接使用微信号登陆。DNSPod 域名可以不备案解析,目前我自己并没有遇到什么问题。

登陆进去后,进入「DNS管理 - 添加域名」,将你的域名添加进去。然后根据提示修改域名的 NS 服务器,把域名交给 DNSPod 解析。

注意这里解析的二级域名和前面添加的一致,然后模式选择 「A 接入」,内容是 Cloudflare CDN 的 IP。

你甚至可以给三网分配不同的节点,然后海外使用默认的节点,尽可能优化速度。

unalted image

智能解析

至于 Cloudflare IP 这里就不放了,网上有许多获取合适 IP 的方法。

缓存设置

接入 Cloudflare 时,即便在 Cache 中设置了缓存,但实际上并没有缓存至 CDN 节点。事实上,Cloudflare 高速缓存内容 默认不包括 HTML 文件,我博客中图片等资源又是放在其他位置的,所以几乎没有缓存任何内容。

但是,博客页面中并无太多动态内容,对于静态博客而言更甚,完全可以缓存至 CDN 节点以加快访问速度。这里我们通过 Cloudflare Page Rules 强行缓存所有静态内容。

缓存 Page Rule

Cache Level 调整为 Cache Everything,从而缓存一切资源。Browser Cache TTL 为浏览器缓存周期,在此周期内请求直接从浏览器缓存获取。Edge Cache TTL 为 CDN 缓存周期,超出这个周期才会向源站更新缓存。

设置完毕后,你可以通过浏览器控制台检查页面的请求头,如果有 cf-cache-status: HIT(表示命中缓存)或者 cf-cache-status: MISS (表示更新缓存,周期内再访问就会命中缓存),那么你的配置就已经成功生效了。

CDN DevTools 检查

当然,万一有某些内容需要立即更新,也可以在 Cache 设置中手动清除缓存。

这番配置下来并不需要多少时间,但是得到的回报还是比较丰厚的。通过第三方平台接入,我们又可以免费薅上 Cloudflare 一把。

建议通过一些多点地网络工具测试一下上述 IP 在国内的连接效果,选择更合适的节点。

Cloudflare 指定 CDN 节点与缓存配置
本文作者
ChrAlpha
发布日期
2020-02-28
更新日期
2020-06-20
转载或引用本文时请遵守 CC BY-NC-SA 4.0 许可协议,注明出处、不得用于商业用途!
CC BY-NC-SA 4.0