Github Pages 免费使用 SSL 以及 CDN 加速

Github Pages

CloudFlare 是一家不错的反向缓存代理和 CDN 服务商,它提供 DNS 和免费 HTTPS(TLS)、性能优化和压缩资源等。

本文将介绍如何使用 CloudFlare 为 Github Pages 提供 SSL 支持、HTTP/2 以及 CDN 加速。

首先,你应该具备以下条件:

  1. 一个 username.github.io 博客或其他静态web;
  2. 一个个人域名;
  3. CloudFlare 帐号。

如果你还没有用 Github Pages 来写博客,那么建议你这么做,Github Pages 是 Github 提供的免费静态网页服务,能够方便使用静态网页生成器把 Markdown 转为 HTML。(更多信息,参见 GitHub Pages Basics

Github Pages 支持 CNAME,申请了域名之后,在域名服务商后台添加 CNAME 记录指向到 username.github.io,还要在生成静态资源的根路径添加名为 CNAME 的文件,内容为 your-domain.tld,过一会能够使用域名访问博客,这时你的博客是不支持 HTTPS 的。(更多信息,参见Using a custom domain with GitHub Pages

到这里,你已经具备了上述的三个条件,接下来进入 CloudFlare 配置环节。

设置 DNS

前往 Add Websites 添加你的域名,增加 CNAME 指向到 username.github.io 和 A 记录指向 192.30.252.153192.30.252.154,获取最新 Github Pages IP

此外,还需要在域名服务商处增加两条以下 NS 记录

1
2
brad.ns.cloudflare.com
hera.ns.cloudflare.com

这时,解析个人博客 DNS 的工作交给了 CloudFlare。

设置 SSL

进入设置项 Crypto,SSL 选项设置为 FullFlexible

强制 HTTPS 将 http 转为 https

此外,还可以开启 HTTP Strict Transport Security (HSTS) 确保访客使用 HTTPS。

缓存文件

CloudFlare 支持通过 Page Rules 来配置 Cache Everything 使用 CloudFlare 的 CDN。我们这里只配置 Caching 的 Caching Level 项为 Standard。如果配置了 Cache Everything,当内容有更新时可在 CI 环境调用 API 来刷新 CDN 缓存。

到这里,你的博客域名已经支持 HTTPS 了。当然,CloudFlare 还默认支持 HTTP/2 和 SPDY 以及更多的加速优化功能,自己慢慢体验吧。

(完)