首页 > 其他分享 >Vercel到Cloudflare:高性价比的迁移实践

Vercel到Cloudflare:高性价比的迁移实践

时间:2024-11-16 15:14:52浏览次数:3  
标签:部署 js 成本 pnpm Cloudflare 高性价比 Vercel


背景

尽管 Vercel 的确在便利性和全栈支持上做得不错,但它的成本问题让人望而却步。
经过深入研究,我决定将我的 AI 搜索项目项目迁移到 AWS 和 Cloudflare,最终成功节省了大部分开支。
这篇文章记录了完整的迁移过程,希望对有类似需求的开发者有所帮助。


为什么会选择 Vercel 起步?

作为全栈开发的热门平台,Vercel 在功能设计上确实非常方便,尤其适合快速启动项目:

  • CI/CD 集成:与 GitHub 无缝对接,支持代码提交自动上线、滚动更新与版本回退。
  • 域名服务:自动生成子域名,便于快速部署 Demo 版本。
  • 分支支持:为每次部署生成独立访问地址,适合团队调试和验证。
  • 附加工具丰富:包括访问统计、性能分析、日志管理、环境变量配置等。
  • Next.js 支持到位:作为 Next.js 的官方部署平台,Vercel 提供了一整套开发、运维、部署的生态支持。

Vercel 的这些特性让它成为许多开发者的首选,尤其是初学者或需要快速验证想法的团队。


Vercel 的痛点:高昂的成本

尽管 Vercel 提供了极大的便利,但它的成本问题也不容忽视:

1. 基础费用:

  • 免费版本仅支持个人项目,组织项目需要升级到团队版(20 美元/月)。

2. 云函数超时限制:

  • 默认 10 秒超时,最多 60 秒;升级到 Pro 版本后,超时限制提升至 300 秒,但很多高延时的任务仍然容易失败。

3. 功能单独计费:

  • 例如网页统计、数据库存储按访问量和空间收费,每月账单容易超出预期。

4. 流量计费:

  • 云函数调用费用高达 $0.18/GB Hrs;使用 Next.js 的 Image 组件会触发图片裁剪和 CDN 加速,这些隐性成本累积后也非常可观。

本质上,Vercel 只是 AWS 的一层封装,其费用显著高于直接使用 AWS 的裸机服务。对于需要控制成本的开发者来说,这是一个不得不解决的问题。


替代方案:探索更经济的部署方式

为了解决成本问题,我研究了几种替代 Vercel 的部署方式,主要如下:

1. 云部署平台

  • Netlify:Vercel 的主要竞争对手,支持站点分析和活跃用户统计。
  • Railway:支持 Docker 容器部署,适合多种项目类型。
  • Render、Firebase、Heroku:各有特色,适合不同规模和场景。

2. 开源或自建部署

  • Coolify:功能强大的开源平台,自托管替代方案。
  • Dokku:轻量级 Heroku 替代方案,支持多语言框架。
  • 自建服务器:通过 PM2、Docker 或 K8S 管理服务。

3. Cloudflare 的托管方案

  • Cloudflare Pages:适合静态站点和小型全栈应用的几乎免费服务。
  • Cloudflare Workers:用于无服务器脚本和 API Proxy。
  • Cloudflare R2 和 D1:低成本的文件存储和数据库托管。

实践分享:三种替代部署方案

1. 在云服务器上用 PM2 部署 Next.js

  • 在 AWS EC2 上购买一台 Ubuntu 云服务器。
  • 安装 Node.js、PNPM 和 PM2:
    npm install -g pnpm pm2
    pnpm install # 安装依赖
    pnpm build
    pm2 start pnpm --name my-app -- start # 启动服务
    

2. 使用 Docker 部署

  • 修改项目配置,开启 standalone 模式:
    const nextConfig = { output: "standalone" };
    export default nextConfig;
    
  • 创建 Dockerfile 并构建 Docker 镜像:
    FROM node:18-alpine
    WORKDIR /app
    COPY . .
    RUN pnpm install && pnpm build
    CMD ["node", "server.js"]
    
  • 使用 Nginx 和 Certbot 配置公网访问与 HTTPS。

3. 使用 Cloudflare Pages 部署

  • 安装依赖:
    pnpm add -D @cloudflare/next-on-pages
    
  • 创建 wrangler.toml 配置文件,并更新 next.config.mjs 以适配 Edge Runtime。
  • 执行部署命令:
    pnpm run deploy
    

迁移后的成本与收益

通过将项目迁移至 AWS 和 Cloudflare:
每月服务器成本从 5000 美元 降至不足 100 美元。
服务性能和可扩展性均得到了显著提升。
Cloudflare 提供的免费或低成本服务,如 DNS 解析、R2 文件存储、D1 数据库等,进一步降低了我的运维开销。

总结

本次迁移是一次高性价比的实践。不仅帮助我节省了大笔成本,也让我更加灵活地控制服务的架构与资源。如果你也面临类似的成本问题,希望这篇文章能为你提供有价值的参考。

对于开发者而言,选择合适的部署平台要综合考虑 成本运维复杂度

如果你也在寻找更具性价比的部署方案,希望这篇文章能为你提供一些思路。

标签:部署,js,成本,pnpm,Cloudflare,高性价比,Vercel
From: https://blog.csdn.net/Chtho11y/article/details/143816843

相关文章

  • 寻找最佳平衡点:高性价比与高质量并存的陪玩系统
    成品陪玩系统源码的优点:1、成品源码的开发周期短:拥有完整的架构,对比企业自行开发来说,节省时间;2、支持二次开发和定制:企业可以根据自己的需要提出需求,根据这些需求可以对源码的现有功能进行增减,定制专属功能添加等;3、性价比高:企业自己开发陪玩系统源码,需要从头开始,不仅要承担......
  • 内网穿透:如何借助Cloudflare连接没有公网的电脑的远程桌面(RDP)
    内网穿透:如何借助Cloudflare连接没有公网的电脑的远程桌面(RDP)-含详细原理配置说明介绍前言远程桌面协议(RDP,RemoteDesktopProtocol)可用于远程桌面连接,Windows系统(家庭版除外)也是支持这种协议的,无需安装额外客户端即可实现类似向日葵、toDesk等的远程桌面访问与控......
  • Cloudflare Workers快速入门指南
    以下是一个快速入门指南,帮助您开始使用CloudflareWorkers:安装WranglerCLI首先,您需要安装WranglerCLI,这是Cloudflare官方提供的用于管理Workers的命令行工具。npminstall-gwrangler创建新的Worker项目使用Wrangler创建一个新的Worker项目:wranglerg......
  • 全网热点信息监控舆情监控,一个docker一行命令启动完成部署,汇聚全网27个主流网站实时热
    全网热点信息监控舆情监控,一个docker一行命令启动完成部署,汇聚全网27个主流网站实时热榜,热点一“手”掌握,今日热榜API,一个聚合热门数据的API接口,支持RSS模式及Vercel部署。今日热榜汇聚全网热点,热门尽览无余,今日热榜可以为用户提供最新、最热门的信息,尽览各大平......
  • 本地运行vercel模板项目vercel/nextjs-postgres-auth-starter
    官方指南链接:https://vercel.com/templates/next.js/prisma-postgres-auth-starter创建项目create-next-appnpxcreate-next-appnextjs-typescript-starter--example"https://github.com/vercel/nextjs-postgres-auth-starter"进入nextjs-typescript-startercdnextj......
  • 将 MongoDB 与 Cloudflare Workers 结合使用
    当我尝试使用CloudflareWorkers和MongoDB创建一个简单的项目时,我遇到了多个错误,导致集成过程变得困难。在我的研究过程中,我发现了一些讨论MongoDB和CloudflareWorkers之间的兼容性问题的文章。MongoDB和CloudflareWorkers兼容性问题我发现了一篇题为“MongoDB无法......
  • 一款高性价比4g工业路由器,配置简单,网络覆盖强
    ​各位老铁,今天给大家介绍一下SR600这款工业级4G路由器。这玩意儿是专门为工业环境设计的,比如说化工厂、矿场这种恶劣环境,普通路由器根本扛不住。先说说SR600的硬件配置:处理器:工业级CPU,厂家没透露具体型号,但性能够用内存:128MB,满足工业控制需求存储:16MBFl......
  • CloudFlare对接来此加密:实现域名自动验证 快速申请证书
    使用ACME可以方便的申请证书,其中相对比较麻烦的是如何自动验证域名。 CloudFlare有两种接口凭证对接方式。a)具有限制性的APITokens。b)具有所有权限的APIKeys。为了安全起见,来此加密只采用具有限制性的APITokens,用户可以随时取消或修改,以保护CloudFlare的安全。APITo......
  • github pages使用cloudflare加速自定义域名概要
    首先,整个操作涉及三个管理方githubpagescloudflare的DNS解析设置自定义域名的解析设置其次,你需要知悉这些内容DNS及CNAME解析githubpages的基本部署域名的基础管理cloudflare的基本域名添加及解析管理概要步骤githubpages部分在githubpages页面,先启用部署(Build......
  • acme+cloudflare生成免费证书(自动续期)
    acmeDNSapiacmeDNSapi的作用是在申请证书时使用dns交易,acme可以通过dnsapi在对应的dns管理平台提交对应的dns记录。玩过证书的朋友都知道,证书申请时有三种验证方式邮箱验证:需要邮箱与域名绑定(细节要求我没试过)文件验证:文件验证时证书管理方会要求你在服务器的指定路径上方一......