Blog 托管到 Cloudflare Pages

Blog 此前一直是跑在自己的东京服务器上,这个服务器上跑着我的 blog 以及一些自用的服务,因为更新并不频繁,所以直接起了本地的 hexo server,然后 nginx 反向代理一下,当然还反代了其他的几个服务。

但是最近考虑把服务器给退掉,所以 blog 的托管就成了一个问题。简单做了下调研,国内的云厂商基本都有,但是麻烦的是域名和备案。做了一些调研,最终考虑托管到 Cloudflare Pages 上,有以下几个优势:

  1. 非常简单,基本就是点一点就能全部搞定。把 blog 从我自己机器切换到 Cloudflare 上过程可能都不到 10 分钟,就完全可以访问. (如果是用 GitHub actions 生成静态页面的话,配置 workflow 需要多花半个小时左右)
  2. 对技术人来说很友好。Cloudflare Pages 直接读取 Github 上 blog 的私有仓库,我本地有修改的话,直接 push 到 Github 即可, Cloudflare Pages 会自动拉取
  3. 静态资源访问免费,Functions 和 Works 每天有 10w 次的免费访问
  4. 我的域名解析也在 Cloudflare 上面,支持直接 cname 到生成的二级域名上,自动处理 htttps 证书的问题,也很省心
  5. 可以很方便地结合 Cloudflare 提供的其他能力,比如认证、Functions 等等..

整体的结构图如下:

整个流程是这样的:

  1. 添加新的文档或者页面,并 push 到 GitHub 上我的 blog 仓库
  2. commit 触发 GitHub Action,Action 会搭建 hexo 的环境,并执行 hexo generate 生成静态网站
  3. Action 会把静态网站的修改生成新的 commit,并 push 到 public_blog 仓库,也就是静态网站的仓库
  4. Cloudflare 会去 public_blog 仓库拉取最新的提交,并部署到 CDN 和边缘节点上。

Have fun!

Ref:
Cloudflare Pages 介绍文档