针对国内配置 CDN 加速 Cloudflare Pages 访问
文章目录
前言
由于博客全栈部署在 Cloudflare 上,国内访问(特别是首次访问)会很慢,平均从访问到显示内容大约需要 4s 多,因此考虑为前端即 Cloudflare Pages 套一层国内的 CDN 来加速前端页面资源的分发,对于后端(Cloudflare Workers)由于是动态内容单独套 CDN 加速效果可能并不明显,可能需要上全站加速才能有效果,同时在测试中发现仅加速前端页面已经基本能够提供较为良好的用户体验了,于是不做处理
整体思路
加速 Cloudflare Pages 本身十分简单,只需要在国内任意一家厂商配置一个 CDN,回源地址填写 Cloudflare Pages 的地址就可以了,这里就不再详细介绍其配置过程
那么如何根据访问者 IP 将流量引导至国内的加速域名呢?这里使用 Cloudflare 的 规则 > 重定向规则 来实现,即判断访问者国家地区是否中国大陆,同时判断访问的主机名是自己要加速的域名的话就将其重定向至国内的加速域名,重定向目标规则设置为动态:
concat("https://<你的国内加速域名>", http.request.uri.path)参考配置:

这里重定向目标地址使用动态来确保重定向跳转到国内加速域名后仍然访问的是指定路径,而不是出现访问 https://xeu.life/about 却跳转到 https://cn.xeu.life 的情况
但是!但是! 到这里还没有结束,如果你国内 CDN 回源地址与重定向规则中判定的域名相同的话,那么不幸的是你的 CDN 回源时也会受到此规则影响形成无限重定向导致无法访问
解决方法也比较简单,为 Cloudflare Pages 再随便绑定一个专门用来回源的域名,或者直接使用分配的默认 Pages 地址回源,我这里绑定了 direct.xeu.life 作为回源地址,这样 CDN 回源时就不会触发以上规则导致回源失败了
后序
相信经常被 DDOS 的小伙伴都知道,一旦用上了 CDN,就等于将自己的钱包放在所有人都能拿到的地方,哪天有人不高兴了打打你的 CDN 玩,那么受罪的只有钱包,于是用 CDN 一定要做好防护措施,哪怕他可能并没有那么有用。针对 IP 的限流,预警,短时间内流量超过阈值直接关闭 CDN 等等一系列措施都可以让你的钱包不那么容易被掏空。当然,我觉得最能够隔绝大部分攻击的方法还是屏蔽国外 IP 的访问(大部分攻击其实都是来自国外,国内相对很少),屏蔽方法根据不同厂商有所不同,腾讯云可以直接通过插件配置可访问地区的黑白名单,阿里云没有直接的配置,但是可以使用他们的 EdgeScripts 来实现相同的功能,这里仅提供思路,不再做过多介绍(其实是懒)
回复 sundys
回复 sundys
回复 nimrod1990
回复 Jackchen0514
回复 Xeu
回复 Jackchen0514
回复 Xeu
回复 Jackchen0514
回复 Xeu
回复 Jackchen0514
回复 Xeu
回复 onshine
回复 onshine