在 Cloudflare Workers 上搭建一个免费动态博客
你可能听说过静态博客速度快,也了解动态博客功能灵活。现在,有一个开源项目试图结合两者的优点:它利用 Cloudflare 的服务,搭建一个既快速又灵活的免费博客。我的理解是,它的核心思路很巧妙,用缓存来保证速度,用键值数据库来实现动态功能。
这个博客是如何工作的
这个博客程序完全运行在 Cloudflare Workers 上,这是一种边缘计算服务。它主要依赖两个组件:Workers 本身和 Cloudflare KV。KV 是一种键值对数据库,在这里承担了存储博客文章和数据的任务。程序本身没有其他外部依赖。
它的一个关键设计是“使用cloudflare缓存html来降低KV的读写”。所有生成的 HTML 页面都会被缓存起来。这意味着当读者访问你的博客时,大部分时间看到的是直接从 Cloudflare 全球网络边缘节点读取的缓存页面,速度可以媲美静态博客。只有当需要更新内容或访问后台时,才会去读写 KV 数据库,从而获得了类似 WordPress 的动态管理灵活性。
它的能力与限制
对于个人博客或小型网站来说,这个方案的承载能力是足够的。由于大量使用了缓存,对 KV 数据库的读写请求很少,因此数据库基本不会成为瓶颈。主要的限制来自于 Cloudflare Workers 服务本身的免费额度:每日最多 10 万次请求。根据原文估算,这大约能承受每日 2 万独立 IP 的访问量。
在存储方面,免费版的 KV 提供 1GB 的存储空间。存放几万篇普通的博客文章应该不成问题。所以,对于内容创作来说,空间限制在初期可能并不明显。
搭建需要哪些步骤
如果你有兴趣尝试,部署过程可以概括为几个核心步骤。首先,你需要在 Cloudflare 控制面板中创建一个 Workers 和一个 KV 命名空间,并将两者绑定,变量名需要设置为大写的 CFBLOG。
其次,涉及域名设置。你需要将自己的一个域名(或子域名)通过 Cloudflare DNS 解析,并确保代理状态(橙色云朵)是开启的。然后,将这个域名的路由(例如 https://blog.yourdomain.com/*)绑定到你创建的 Workers。同时,还需要获取用于清理缓存的 API 令牌和区域 ID。
最后,将开源项目的代码粘贴到 Workers 编辑器中,并根据说明修改必要的配置参数。完成这些后,访问你的域名加上 /admin 路径,就可以进入后台进行初始设置和发布文章了。
关于外观与互动功能
这个博客项目具有一定的扩展性。开发者提到,可以参照任意现有主题来快速开发新主题。项目默认的主题是基于某个现有主题修改的。这为喜欢自定义外观的用户提供了可能。
在互动功能方面,由于页面被强力缓存,像 WordPress 那样的原生动态评论系统难以直接实现。因此,项目推荐使用第三方的评论服务,原文中明确推荐了 Valine 这个系统,并提到作者已经对比过其他选项。
结语
总的来说,这是一个利用现有云服务特性、构思巧妙的技术方案。它通过缓存机制在“快”与“活”之间找到了一个平衡点,并且完全运行在免费额度内,降低了技术门槛和成本。当然,它的形态也决定了其功能边界,例如评论需要依赖外部服务。对于想拥有一个轻量、快速、可控的个人博客的读者来说,这或许是一个值得探索的有趣选择。