我把网站迁移到 cf,省了几万块

我把网站迁移到 cf,省了几万块

💡 原文中文,约9400字,阅读约需23分钟。
📝

内容提要

本文介绍了作者将AI搜索引擎从Vercel迁移到AWS和Cloudflare的过程,列举了替代Vercel的几种部署方案,并分享了在云服务器和Cloudflare上部署nextjs项目的具体步骤和注意事项。作者还介绍了Cloudflare提供的免费服务,总结了迁移过程,并推荐了Cloudflare的服务。

🔎

延伸解读

Vercel 成本结构解析

文章指出 Vercel 的收费模式是导致作者迁移的主要原因。除了团队版每月 20 美元的基础费用,云函数调用按流量计费($0.18/1 GB Hrs),图片优化、数据存储、访问统计等也都单独计费。对于月访问量几十万的 AI 搜索引擎,这些费用叠加后达到每月 5000 多美元。读者需注意,Vercel 的便利性背后是较高的隐性成本,尤其当项目涉及大量云函数调用或图片处理时。

迁移方案的选择考量

作者对比了多种替代方案,包括类似 Vercel 的云平台、开源部署、自建服务器和 Cloudflare Pages。选择时主要权衡服务费用和运维复杂度。由于迁移核心目标是降低成本,作者排除了其他云平台和托管 K8S,最终实践了自建服务器(pm2 和 Docker)以及 Cloudflare Pages 三种方案。这提示读者,若成本敏感且具备一定运维能力,自建或 Cloudflare 托管是可行方向。

Cloudflare 部署的改造要点

将 Next.js 项目部署到 Cloudflare Pages 需进行多项代码改造。首先,所有 API 路由和页面路由必须显式指定 edge 运行时。其次,若使用 PostgreSQL,需将 pg 客户端替换为支持 edge 的 neon 或 supabase 客户端,但 supabase 客户端不支持随机排序操作。此外,依赖 fs 或 http 等 Node.js API 的逻辑需改用 fetch 等兼容方式。这些改造可能影响项目原有功能,迁移前需充分测试。

Cloudflare 免费服务的实用价值

文章列举了 Cloudflare 多项可免费使用的服务,包括快速的 DNS 解析、安全防护(如交互式验证、DDoS 防护、速率限制)、Workers 和 Pages 托管、D1 数据库以及 R2 文件存储。作者已将多个项目的图片迁移至 R2,并考虑用 D1 替代 supabase。对于小网站,这些免费额度足以覆盖需求,能显著降低运营成本。但需注意,D1 的数据迁移服务尚不明确,可能需自行处理。

❓

Q&A

为什么作者决定将网站从Vercel迁移到Cloudflare?

作者迁移的主要原因是Vercel的费用过高,每月支出达到5000多美元,因此选择了成本较低的Cloudflare。

Vercel的优缺点是什么?

Vercel的优点包括方便的CI/CD集成和丰富的功能支持,但缺点是收费昂贵,特别是在云函数调用和数据存储方面。

有哪些替代Vercel的部署方案?

替代Vercel的部署方案包括自建服务器、开源部署方案和使用Cloudflare Pages等。

如何在AWS上使用pm2部署nextjs项目?

在AWS上部署nextjs项目需要购买EC2服务器,安装nodejs和npm,使用pm2管理进程,并配置nginx作为反向代理。

Cloudflare提供哪些免费的服务?

Cloudflare提供的免费服务包括DNS解析、安全防护、Cloudflare Workers和Cloudflare Pages等。

使用Cloudflare部署nextjs项目需要注意什么?

使用Cloudflare部署nextjs项目时,需要确保所有的api路由和页面路由文件指定使用edge运行时,并改造不兼容的数据库客户端。

🏷️

标签

➡️

继续阅读