想做个人副业别乱买服务器!我的 5 个月真实开销分享

想折腾个人副业做小产品,是不是必须买云服务器?每个月是不是要一笔不小的开销?

我自己断断续续折腾副业五个多月,算下来,云服务一分钱没花,唯一开销就6块钱,只买了一个域名。前端、后端、数据库、存图片的存储全部用 Vercel 和 Cloudflare 免费版。

先把我实际用到的各个组件分工讲清楚,避免搞混:

  • Vercel:主要放前端网页,Vue、Next.js 这类。Next.js 在Vercel上面适配最好,开箱体验顺滑。
  • Cloudflare Pages :同样部署前端,适合静态页面、Astro、普通Vue项目;免费带宽无上限是它最大优势,但Next.js部分高级特性需要额外适配才能跑起来。
  • Cloudflare Workers:跑后端接口,写Express这类API服务,不用管服务器,写完直接部署到全球边缘节点。
  • D1:Cloudflare 自带的 SQLite 数据库,存业务表,比如任务、用户这类结构化业务数据。
  • R2 :存图片、上传的文件,好处是文件对外下载不收流出流量费。

区分两类存储:D1用来存表格类业务数据;R2专门放图片、附件这类二进制文件。

  • K2、Basin 这两个组件我就直接没碰。K2是消息队列,Basin是面向海量数据的数据湖;K2还需要付费套餐才能开启,对于我现阶段的小副业MVP项目来说完全用不上,没必要花时间去研究。

简单对比下两个前端平台怎么选: Next.js项目优先Vercel,原生适配,踩坑少;普通静态Vue、H5页面,Cloudflare Pages会更香,不用担心流量爆了产生高额账单。

前端部署:Cloudflare Pages实操

Cloudflare Pages就是用来托管前端代码的,先进入Pages功能界面。

截图说明:这是Cloudflare侧边栏「Workers & Pages」的入口,点进去就可以新建Pages前端项目。

接下来关联GitHub仓库,选择我们存放前端代码的仓库。

截图说明:授权GitHub之后,页面会列出你的所有仓库,选中需要部署的前端仓库。

我第一次部署完,页面直接报错打不开。

截图说明:部署构建成功,但访问页面404/报错,绝大多数情况是构建命令、输出文件夹配置不对。

找到项目设置,修改部署配置,调整构建命令、构建输出目录。

截图说明:在这里填写框架对应的构建命令,以及打包之后输出资源的文件夹,比如dist。

保存配置,触发重新打包。

截图说明:提交代码或者手动触发,Pages会重新执行一次构建流程。

构建状态变成绿色,代表部署成功,可以访问默认域名。

部署完成之后,就可以绑定自己的子域名。举个例子,根域名是example.com,主站www.example.com交给Vercel,我新建子域名vue.example.com分配给Cloudflare Pages。

截图说明:Pages的自定义域名配置页面,填入自己已经托管在Cloudflare的子域名,自动生成DNS解析记录。配置完成后就可以用自己的域名访问网页。

后端:Workers + D1,踩过不少真实的坑

后端这块踩坑是最多的。我本地开发用better‑sqlite3做SQLite,本地跑一切正常,代码一推到线上Worker,接口直接500。

截图说明:Workers项目的管理界面,我们在这里上传express后端代码、管理绑定资源。

线上接口返回500报错页面。

截图说明:浏览器直接访问接口,返回500内部错误,但是这个页面看不出具体是什么问题,需要去日志里排查。

Worker也可以绑定自定义子域名,我把api子域名绑定到Worker服务。

截图说明:Workers自定义域名配置,填入api子域名,域名托管在当前Cloudflare账号,就可以绑定成功。

线上出问题,就要来到Observability日志页面查看事件日志,这里能看到代码打印的console日志和异常堆栈。

截图说明:Events事件日志列表,每一条请求都会记录在这里,可以过滤error级别日志,拿到报错堆栈。

监控指标总览页面,这里统计Worker底层运行指标。

截图说明:这里只统计Worker运行时底层崩溃错误;业务代码返回500不会计入这里的Errors指标,不要被0Errors迷惑。

D1数据库监控面板,可以直观看到数据库查询次数、读写行数、存储空间、数据表数量、查询延迟。

截图说明:D1数据库概览页,如果发现数据表数量不对,可以进到Console标签页直接执行SQL语句建表、查数据。

翻看线上日志堆栈,才搞懂原因:better‑sqlite3依赖操作系统原生二进制文件,Worker环境里面是跑不了的。 必须写代码做环境区分,线上环境只用绑定好的D1实例,只有本地开发的时候才去加载本地sqlite文件。

线上排错这里我也踩过认知误区:Worker总览页面的Errors等于0,不代表业务接口没有出错。 这个统计指标,只统计Worker底层运行崩溃的情况。像Express捕获异常之后主动返回500,属于业务层面错误,不会计入这个统计。 这种情况下,日志也不会自动打印错误堆栈,需要自己写全局错误捕获中间件,手动把error对象打印出来,才能在Observability Events里面看到真实报错信息。

日常排查的习惯:接口出问题,优先看Events日志,过滤error级别日志。本地优先用wrangler dev调试,很多问题本地就可以复现,比线上看日志省事很多。

配套存储

R2对象存储

对标阿里云OSS,适合存放图片、用户上传附件,它最大的优势是对外流出流量不计费。

截图说明:R2存储桶列表页面,在这里新建存储桶,之后就可以在Worker/Pages里面绑定R2,实现文件上传读取。

K2 Streams、Basin

这两个我现阶段直接没有使用。 K2是消息队列,Basin属于数据湖,面向海量数据分析场景,而且K2还需要付费套餐。对于小副业MVP来说,暂时接触不到,不用花精力研究。

域名配置实操,CNAME域名别名

CNAME不等于网页跳转,它只是一条域名别名解析记录。记录那里云朵图标打开变成橙色,代表流量会先走 Cloudflare,再转发到后端服务;如果是灰色,就仅仅做域名解析,流量直接访问源站,CDN、防护全部不会生效。还有一个小细节,根域名是不能直接配置CNAME。

假设:

  • 我的域名:my-site.com(托管在 Cloudflare)
  • 第三方平台分配的目标地址:target.platform-host.com(比如 Vercel 的 cname.vercel‑dns.com) 需求:希望访问 web.my-site.com,实际打开部署在 Vercel 上的网站

截图说明:DNS解析记录配置界面,添加CNAME记录,注意代理云朵设置为橙色Proxied。SSL/TLS加密模式,记得设置成Full(strict),不然容易出现HTTPS重定向报错。

还有一个关键点,Cloudflare这边配置完CNAME不算完事,Vercel项目里面也要添加这个自定义域名做校验,不然网站依旧打不开。

我自己平时线上排查的一套流程

踩的问题多了,慢慢整理出来一套自己的排查顺序:

  1. 如果前端页面异常,打开Vercel Observability面板,查看CDN、Serverless函数有没有报错尖峰。

截图说明:Vercel项目总览界面,在这里进入Observability监控。

截图说明:Vercel Observability监控图表,看CDN、Functions的报错曲线,定位前端问题。

  1. 如果是后端接口返回500:
    • 不要被Worker总览页面的Errors=0迷惑;
    • 切换到Observability的Events页面,过滤error,过滤POST请求;
    • 如果看不到报错堆栈,检查自己有没有写全局错误捕获,打印err对象;
    • 留意新版本流量是否还没切过来,用接口输出版本号的方式确认当前实际运行的代码。
  2. 如果怀疑数据库相关问题,打开D1控制台,查看数据表数量,在Console执行SQL检查表是否正常。

关于免费额度需要留意的地方

Vercel、Cloudflare这套免费方案可以支撑个人副业想法验证,但各个组件都有对应的免费额度上限。 D1、R2、Workers调用次数都有限制,小流量的MVP项目是够用的。

可以直接抄作业的MVP架构

给想做副业的朋友一个现成参考:

  • 前端网页:
    • Next.js项目优先Vercel;普通静态Vue页面可以选Cloudflare Pages
  • 后端接口:Cloudflare Workers + Express
  • 业务数据库:D1
  • 图片附件:R2
  • 域名:自行购买域名,托管到Cloudflare

整体开销,就只有域名的费用。适合做小工具、个人SaaS,快速验证副业想法。

结尾

不少人想尝试做个人副业,还没有动手,就会担心服务器成本太高,不敢开始。

就我自己体验下来,想法验证阶段,完全没必要一开始就购买云服务器。Vercel+Cloudflare这套免费栈,足够把完整产品跑上线。

当然有更多好用的功能或者其他产品也欢迎在评论区共同分享!

相关推荐
小蒜学长1 小时前
基于 Spring Boot 的英语单词背诵系统的设计与实现(代码+数据库+LW)
java·数据库·spring boot·后端
用户69371750013841 小时前
我买的电视,我还不能研究它吗?
前端·后端·ai编程
Hilaku2 小时前
删了一个没用的 console.log,生产环境直接崩了!
前端·javascript·程序员
计算机魔术师2 小时前
Latent Space 解读 Anthropic 提交 S-1:拟以代码 AN 上市纳斯达克,H1 2026 营收 16.3B 美元
前端
2601_949847752 小时前
Form-data 跨端三方库仓颉适配全流程
前端·javascript·flutter
利威尔xu2 小时前
RAG 检索面试十连问:召回率从 92% 掉到 61%,答案句被拦腰截断怎么排查
人工智能·后端·大模型·向量数据库·rag
zyseo82 小时前
谷歌SEO 内容更新焕新流程:让老页面重新起量
java·前端·javascript
老王IT2 小时前
Go开发环境搭建(window操作系统)
开发语言·后端·golang
萧瑟余晖2 小时前
Spring Data JDBC与R2DBC详解
java·后端·spring