引言

由于作者的博客服务器位于海外,日常访问时会出现加载缓慢的问题
我们可以借助CloudFlare的CDN/国内图床的方式加快海外博客的访问速度
CF它简直是互联网活菩萨,其它厂商收米的服务全部免费~

当你接入Cloudflare的CDN,并点亮小云朵之后。你的网站就已经通过Cloudflare的CDN节点进行中转了。默认情况下,Cloudflare 会对你网站中的图片、JS、CSS文件等静态文件进行缓存。

当访客访问你网站页面的时候,所有的静态文件都是由Cloudflare的节点直接给到访客的,但是HTML文件是默认不缓存的。也就意味着访客访问你的某一页面的时候。仍然会回源你的服务器。

所以,本篇文章就是教你如何使用Cloudflare的缓存规则(Cache Rules)把整个HTML页面给缓存。 使访客访问被缓存的页面的时候,直接交由Cloudflare进行服务,甚至你的源服务器不会收到任何GET请求。

这样做的好处是,可以大大减少源服务器的负载开支,使得你的站点能够承载更多的访客及流量。

请先将自己的域名添加到CloudFlare,并解析到自己的服务器,博客基于Halo搭建,需要分别设置缓存,不能简单暴力的使用全站缓存,如果使用Hexo等静态博客框架,那么可以使用全站缓存。

Stage.1 开启CloudFlare代理

Cloudflare Dashboard | Manage Your Account

进入账户主页-选择你的域名-DNS
编辑 解析到博客主页的记录


代理状态的开关打开,云的标志变为彩色状态

到这里,CloudFlare

Stage.2 让CloudFlare缓存博客的静态页面,并启用常见的加速选项

进入缓存-Cache Rules


我们的教程基于Halo搭建的网站,这个教程同样适用于Hexo/WordPress等其它博客框架,不过请注意,WordPress/Halo这类动态博客框架不能简单粗暴的使用全站缓存,如Halo在控制台保存文章后文章会消失,绕过缓存后文章又正常出现~

CloudFlare默认规则会缓存一些资源,但默认的规则不够全面

+创建规则


这里提供一个常用的规则

(http.request.uri.path.extension in {"7z" "csv" "gif" "midi" "png" "tif" "zip" "avi" "doc" "gz" "mkv" "ppt" "tiff" "zst" "avif" "docx" "ico" "mp3" "pptx" "ttf" "apk" "dmg" "iso" "mp4" "ps" "webm" "bin" "ejs" "jar" "ogg" "rar" "webp" "bmp" "eot" "jpg" "otf" "svg" "woff" "bz2" "eps" "jpeg" "pdf" "svgz" "woff2" "class" "exe" "js" "pict" "swf" "xls" "css" "flac" "mid" "pls" "tar" "xlsx" "rtf" "txt" "md" "tar.gz" "tar.bz2" "tar.xz" "xz" "psd" "ai" "mov" "wmv" "wav" "aac" "m4a" "obj" "stl" "json" "xml" "yml" "yaml" "bat" "sh" "py" "m3u8" "ts"})

编辑边缘TTL选项

此项可以配置资源缓存的时效,我选择了一年。

缓存密钥

我们不希望博客的后台,登录界面被缓存,那么需要再定义一条规则,绕过缓存即可。


Stage.3 可选开启的优化/加速选项

缓存-配置

Crawler Hints 爬虫优化

Always Online™ 源服务器不可用时让访问者仍可访问您的网站

缓存-Tiered Cache
Tiered Cache Topology 提高缓存命中率

以及 速度-优化 下的配置选项

Stage.4 结语

CloudFlare不愧为互联网大善人,免费为全球网站提供强大的加速和安全防护,虽然国内的速度算不上快,对于我这种备案困难资金受限的学生党来说还是不错的。

CF更多的作用还是保护源站,减轻源站负载,合理使用(薅)实现最大化利用资源( ̄▽ ̄)"
以免费的服务为全球网站提供强大的加速和安全防护。以免费的服务为全球网站提供强大的加速和安全防护。