Hexo配置Cloudflare免费CDN

由于 GitHub Pages 的服务器在国外,国内访问速度可能会非常慢。目前有以下几种解决方案:

  • 博客双线部署在GitHub Pages和Coding Pages上,其中国内流量解析到Coding Pages,国外流量解析到GitHub Pages
    • 优势:无需购买VPS、速度比较快、不用备案
    • 劣势:Coding Pages的服务并不是那么稳定,近期出现多次不能正常部署或访问Pages的问题
  • 博客部署到国内的VPS
    • 优势:速度快
    • 劣势:需要购买VPS、需要备案
  • 博客部署在GitHub Pages上并采用CDN加速
    • 优势:速度快、无需备案、稳定
    • 劣势:CDN比较贵,hhh

本文主要介绍Hexo博客部署在GitHub Pages上并且配置CDN进行加速的方法。

这里我们假设博客已经部署在GitHub Pages并启用了个性域名。如果你还没有绑定个性域名,可以参考这篇教程:GitHub Pages 绑定域名,其中域名服务器修改到DNSPod这部分可以不看,因为这里我们会用Cloudflare来完成域名解析。

CDN介绍

内容分发网络(Content delivery network或Content distribution network,缩写:CDN)是指一种透过互联网互相连接的计算机网络系统,利用最靠近每位用户的服务器,更快、更可靠地将音乐、图片、影片、应用程序及其他文件发送给用户,来提供高性能、可扩展性及低成本的网络内容传递给用户。

简单来说,CDN 就是部署在世界各地的缓存服务器,它们会提前缓存网站上的资源,然后当用户想要访问相关资源时,直接从 CDN 服务器上取就可以了。这样不仅可以增加访问速度减少访问延迟,还可以减缓网站服务器上的压力。

为什么选择Cloudflare?

国内的CDN服务提供商有不少,但是基本都需要备案,因此我转向了Cloudflare这个国外的CDN服务提供商。

Cloudflare 是全球最大的 DNS 服务提供商之一。除此之外他们还提供CDN、SSL证书、DDos保护等服务,并且 Cloudflare 与百度有合作,在国内也部署有大量的节点,还能顺便解决百度爬无法抓取 GitHub Pages 的问题。

CDN配置

快速开始

  1. 首先要去 Cloudflare 注册一个帐号。注意:我们需要的是国际版的 CloudFlare,而不是 CloudFlare 与百度合作的百度云加速

  2. 注册好后点击 Add site 添加你的网站个性化域名。

  3. 添加好后选择免费的那个计划(Plan),有钱也可以选择收费的,提供的服务更多。

  4. 然后点击 Scan DNS Records,等待扫描完成。即使没有扫到 DNS 记录也没有关系,我们可以在后面自己添加,我们只需要添加下图框起来的那两条:

  1. 然后 Cloudflare 会要你把你的 DNS 服务器替换成他提供的,我们只需要去域名商那里设置一下即可。CloudFlare 既是一个 CDN 服务商,同样也是一个 DNS 服务商。DNS修改完成后可以点击 Recheck Nameservers 来复查 NS 记录是否正确设置。

然后过个几分钟,显示 Great news! Cloudflare is now protecting your site 就说明设置成功。

Cloudflare设置详解

Overview菜单设置

主要关注下面两个快捷设置:

  • under attack mode:当你的网站被攻击的时候打开它,这样可以阻止攻击。
  • development mode:由于cloudflare采用了缓存技术,当你更新了网站的内容,不一定能马上在前台看到更新的内容。这个时候你只要打开development mode就可以马上看到网站更新的内容。当然,正常情况下还是关掉比较好。

Analytics菜单设置

这里主要是看网站使用cloudflare之后的一些分析数据,Analytics下面包含几个子菜单:Traffic、security、Performance、DNS。

  • Traffic子菜单:主要是网站在过去某一个时间段的请求、带宽、访客情况。
  • Security子菜单:主要是某一段时间内受到的威胁数据,包括威胁次数、来自哪些国家、威胁的类型等等。
  • Performance子菜单:付费功能。
  • DNS子菜单:主要是DNS查询的数据。

DNS菜单设置

在DNS菜单里面,你可以随意添加或删除所有DNS记录,也可以选择使用或不使用cloudflare的CDN服务。

注意:只有A记录和CNAME记录才可以设置使用CDN服务,我们只需要点亮Proxy status处的云彩小图标即可切换成使用CDN的状态。

SSL/TLS菜单设置

这里面主要是网站加密的设置。

  • SSL设置:如果你本来的网站有SSL证书,这里选择full即可,即浏览器到Cloudflare和Cloudflare到服务器都是加密的。
  • Always Use HTTPS设置:这个打开,一直使用https链接
  • Authenticated Origin Pulls & Opportunistic Encryption & Onion Routing设置:这些设置都打开
  • Minimum TLS Version设置:选择1.1即可,如果选择太高可能导致网站打不开。

Firewall菜单设置

Firewall菜单里面可以对网站安全进一步设置,限制某些IP或地区的用户访问等。

  • Events子菜单:这里面可以查看防火墙的一些小事件,比如屏蔽的一些访问。
  • Managed Rules子菜单:付费功能。
  • Firewall Rules子菜单:这里可以设置限制其他人访问你的网站的规则,每个账户只能设置5个限制规则。
  • TOOLS子菜单:这里的功能是firewall rules功能的补充,都是对用户访问你的网站的一些设置。
    • IP Access Rules:主要是针对IP、IP范围及国家和ASN设置一些规则。
    • User Agent Blocking:对用户使用的代理设置规则,比如浏览器类型、CPU、操作系统。
  • Settting子菜单:
    • Security Level:这个设置low即可,如果设置太高,就会过于敏感,导致很多用户受影响。
    • Challenge Passage:这是验证的有效期,可以设置久一点,比如1 hour
    • Browser Integrity CheckPrivacy Pass Support:全部打开。

Speed菜单设置

  • Auto Minify:网页最小化处理,把Javascript, css html前面都打勾即可。
  • Brotli:这是一种比gzip更好的网页压缩方式,打开即可。
  • Rocket Loader:这个需要测试决定是否需要打开,没有固定的答案,你可以打开之后,然后在不同的浏览器上面查看网页的效果,如果出现网页排版等问题,那就将它关闭。

Caching菜单设置

  • Purge Cache:这个设置是清除缓存,其中:
    • Custom Purge:清除指定页面的缓存,我们可以点击custom purge, 然后在框里面输入要清除的链接,再点击purge即可。
    • Purge Everything:清除整个网站的缓存。
  • Caching Level:缓存水平设置,决定缓存哪些内容,这里选择standard即可。
  • Browser Cache TTL:即浏览器缓存过期时间,决定浏览器多久向网站获取一次新缓存。

Page Rules菜单设置

免费版本可以设置3个页面的规则。

这里我们可以设置forwarding,也就是301跳转,比如我想要让tding.me整个站都跳转到tding.top,具体设置如下图:

注意:如果Forwarding URL设置为https://tding.top,当我们访问tding.me/about.html时会跳转到https://tding.top而不是我们期望的https://tding.top/about.html。解决办法就是使用变量,每个通配符对应于可在转发地址中引用的变量。变量用 $ 后跟一个数字表示,如果要引用第一个通配符,我们可以使用 $1,如果要引用第二个通配符,我们可以使用 $2,依此类推。因此,Forwarding URL应该设置成https://tding.top/$1

测速

下面是Cloudflare CDN加速后(左图)于GitHub Pages本身(右图)的速度对比:

参考


----------- 本文结束啦感谢您阅读 -----------

赞赏一杯咖啡