Jonathan's Blog

Switching to BunnyCDN in Less Than 2 Hours

发布于 2025 年 3 月 9 日,归类于 Tools, Bunnycdn, Hosting, Blogging, Cloudflare 封面图片基于 Arctic Hare , John James Audubon (c. 1841) National Gallery of Art 目录

目录

鉴于美国政治最近出现的一些,嗯,不稳定 因素,以及大家都喜欢弱者的心态,我一直在寻找欧洲的替代方案来替代我当前的托管方案,也就是 Cloudflare。 在浏览了 european-alternatives.eu,并阅读了 Bluesky 上的一些评论之后,我决定尝试一下 BunnyCDN,这是一家位于斯洛文尼亚的 CDN 服务提供商。 完整切换到 BunnyCDN 的过程非常简单,只用了不到两个小时就设置完毕。 在这篇文章中,我想描述一下我是如何切换的,以及过程中遇到的一些令人困惑的步骤,以及我对整个过程的总体想法和印象。 需要明确的是,这绝不是一篇赞助文章 —— 我与 BunnyCDN 没有任何关联(除了我的网站运行在他们的 CDN 网络上)。 但这篇文章会对他们给予相当积极的评价,因为到目前为止,一切都非常容易,这给我留下了深刻的印象。

Getting Started

首先要做的事情,显然是在 BunnyCDN 网站上注册。 有一个 14 天的免费试用选项(至少在撰写本文时是这样),不需要设置任何信用卡或付款方式。 注册后,该过程比 Cloudflare 的 Pages 产品在一定程度上更加手动,但仍然相当简单。 本质上,对于托管在 CDN 上的博客,我需要两件事:

这里的神奇配置是告诉拉取区,它的源 (origin)(即它从哪里加载文件)应该是一个特定的 BunnyCDN 存储区,而不是任意主机。 创建存储区非常容易。 您可以选择将数据复制到哪些区域,以及可用的存储层选项。 我最终选择了最快的“Edge”层并选择了所有区域,这产生了每月 0.30 美元/GB 的成本。 快速的 du -sh 命令显示我上传的文件将远远小于 1GB,即使这样,每月 30 美分也是一个非常低的价格。 创建后,您将可以访问一个文件夹查看器,该查看器显示存储区的内容(最初为空)。 在这里,您可以手动上传文件(尽管有一些自动化的方法,我稍后会介绍)。 为了测试,我在本地构建了我的博客并将这些文件上传到存储区。 下一步是添加一个拉取区。 这也很简单 —— 同样,您可以选择要支持哪些区域,并且可以选择标准层和一个专为大型文件设计的更便宜的层。 定价因用户连接到的区域而异,因此您可以选择跳过您实际上不需要的更昂贵的区域,但同样,对于我这种规模的博客来说,价格可以忽略不计,所以我选择了所有区域。 在创建拉取区时,系统还会要求您提供拉取区的源,即 CDN 在没有缓存任何内容时应使用的来源。 在这里,我选择了之前创建的存储区。 这两个步骤最多可能花费半小时,在结束时,我有一个托管我的博客的 URL(<my-pull-zone-name>.b-cdn.net)。

Switching Over From Cloudflare

我的第一印象非常积极 —— BunnyCDN 始终如一地比 Cloudflare 快几百毫秒返回我的博文,而且这种效果通过点击我的网站就能注意到。 此外,这种体验非常轻松 —— 是的,它没有 Cloudflare 的一键式 Pages 系统那么快,但仍然非常容易,而且 BunnyCDN 的管理仪表板也感觉比 Cloudflare 的更清晰、更易于使用。 这感觉非常有希望。 所以我做了一个大概不应该在晚上 10 点对“生产”站点做的决定,我将域名的 DNS 指向了 BunnyCDN。 鉴于我的域名也是由 Cloudflare 管理的,这感觉有点亵渎,但也很简单。 在 Cloudflare DNS 设置页面中,有一个现有的 CNAME 记录指向我的 Cloudflare Pages 站点,所以我将其切换到了 BunnyCDN 站点。 我还禁用了“Proxy”设置 —— 这很重要,因为它确保 Cloudflare 直接将用户指向 BunnyCDN IP 地址,而不是通过他们自己的服务器代理请求(本质上是创建了一个双重 CDN)。 在等待了大约五分钟后,我可以从访问我的博客时提供的标头中看出,它是通过 BunnyCDN 提供的。 最初,这产生了关于无效证书的 HTTPS 警告,但这很容易通过在 BunnyCDN 仪表板中启用 HTTPS 来修复。 同样,整个过程可能花费了大约 15 分钟,最后,整个站点完全由 BunnyCDN 提供服务,并且感觉明显更流畅。

Automating Deployments

最后一步是启动并运行自动部署。 我不想每次进行更改时都必须手动上传文件,因此我需要一个 CI 作业来自动构建和发布我的站点。 这件事本应很简单,但由于多种原因,结果变得更加复杂,部分原因是我自己的困惑,部分原因是缺乏文档。 支持此站点的 Git 存储库托管在 Github 上,因此我像以前一样使用了 GH Actions。 我已经处理了更新讨论,这在免费层中很轻松,而且我认为这些构建也能做到这一点。 BunnyCDN 提供了两种自动上传(或操作)存储区中的文件的方法:一个 HTTP API(也可以管理 CDN 的其他方面)和一个 FTP 连接。 考虑到这两个选项,我选择了第三个:让其他人为我做艰苦的工作。 Github 上有一些预先编写的操作可以处理将文件上传到 BunnyCDN,所以我选择了 ayeressian/bunnycdn-storage-deploy,它似乎很受欢迎,而且检查和验证起来也不太困难。 一旦我弄清楚了让它工作的技巧,它就运行得相当好。 具体来说:

但是,一旦它开始工作,一切都运行得非常好。 该作业大约需要 25 秒才能运行,每次推送到 master 都会运行,并按我期望的那样成功部署站点。

Impressions

总的来说,我真的很喜欢 BunnyCDN。 我已经关注它几个星期了,但是能够在不到两个小时内将我的站点从 Cloudflare 完全切换过来给我留下了深刻的印象 —— 尤其是在这里没有快乐的黄金路径“从 Cloudflare 导入”逻辑。 我认为从任何现有 CDN 切换过来都同样容易,而且可能从大多数其他静态托管提供商切换过来也是如此。 到目前为止,我的印象非常积极:

也就是说,BunnyCDN 并非完美,并且值得了解一些差异和缺点:

Conclusion

我喜欢 BunnyCDN。 它速度快、价格低廉且非常易于使用。 它是一家欧盟公司,在我看来似乎足够注重隐私。 它到处都是奇怪的兔子人卡通,起初有点令人不安,但有一种很好的“只是对此感到奇怪”的能量。 目前,我将保持域名指向 BunnyCDN,并使用我获得的免费试用来进行更多测试。 如果您在访问此站点时遇到以前没有遇到的问题,请告诉我。 或者,如果您之前在使用 Cloudflare 时遇到问题,而现在这些问题已得到解决,请告诉我。 我仍然会保留旧的 Cloudflare Pages 实例,因为,嗯,它是免费的,而且在我想要向某人展示我一直在做的事情时,创建预览站点仍然很方便。 (使用 Cloudflare,预览站点会自动为存储库中的任何分支创建 —— 这大概也可以使用 BunnyCDN 实现,但需要更多的手动工作,我不想现在就去做。)如果一切都出错,我可以随时切换回 Cloudflare。 但目前,我是一位满意的 BunnyCDN 客户,我建议您尝试一下。 Share this article on Reddit, X/Twitter, Bluesky, Hacker News, or Lobsters, or via your device. Comments, thoughts, or corrections? Send me an email at jonathan.frere@gmail.com or contact me on social media. This work is licensed under [CC BY-SA 4.0![](data:image/svg+xml,%3Csvg%20version=%221.0%22%20id=%22Layer_1%22%20xmlns=%22http://www.w3.org/2000/svg%22%20xmlns:xlink=%22http://www.w3.org/1999/xlink%22%20width=%2264%22%20height=%2264%22%20viewBox=%225.5%20-3.5%2064%2064%22%20enable-background=%22new%205.5%20-3.5%2064%2064%22%3E%3Cg%3E%3Ccircle%20fill=%22%23fff%22%20cx=%2236.944%22%20cy=%2228.631%22%20r=%2229.105%22/%3E%3Cg%3E%3Cpath%20d=%22M37.443-3.5c8.951.0%2016.531%203.105%2022.742%209.315C66.393%2011.987%2069.5%2019.548%2069.5%2028.5c0%208.954-3.049%2016.457-9.145%2022.514C53.918%2057.338%2046.279%2060.5%2037.443%2060.5c-8.649.0-16.153-3.143-22.514-9.429C8.644%2044.786%205.5%2037.264%205.5%2028.501c0-8.723%203.144-16.285%209.429-22.685C21.1