个人免费建站怎么选:Cloudflare Pages、Vercel、腾讯 EdgeOne 与阿里云 ESA 实战指南
不租服务器,也能把博客、作品集和 AI 小工具放到网上。本文从静态站与动态应用的区别出发,对照四个平台的免费额度、国内节点与备案条件,再用同一个 Vite 项目演示 Git 自动部署、域名、HTTPS 和常见排错。额度按2026年11月3日官方公开资料核对,明确区分已生效规则与后续公告。
先看任务,再看工具
小屏幕可左右滑动,查看完整对照表。
| 平台 | 免费额度与计量重点 | 适合谁 / 先确认什么 |
|---|---|---|
| Cloudflare Pages | 500次构建/月;单次20分钟;2万文件/站;25 MiB/文件。静态资源请求免费不限量;函数与Workers共享10万请求/日。 | 博客、文档、作品集;官方已建议新项目优先Workers。 |
| Vercel Hobby | 100 GB Fast Data Transfer、100万CDN请求/月;100万函数调用、4 CPU小时、360 GB小时内存;100次部署/日。 | 个人非商业项目、Next.js学习;商业使用不能默认选Hobby。 |
| 腾讯 EdgeOne Pages / Makers | 当前500次构建/月、40项目、5 GB总资源;Edge函数300万次/月,另有CPU时间上限。已公告拟改300构建分钟/月。 | 重视国内节点、中文控制台与全栈集成;区域、备案与过渡规则一起核对。 |
| 阿里云 ESA Pages | 中国站免费套餐流量/请求不计费,但有速率限制、无SLA;函数免费模式10万请求/账号/日,最多20函数。 | 已有阿里云账号或域名体系、愿意理解站点与函数两层配置的人。 |
先给选择:第一站做小,平台按受众和运行方式选
如果你只是写博客、展示作品和放几份教程,先做静态站:页面在发布前生成,访客访问时直接获得 HTML、CSS、JavaScript 和图片,不需要维持一台服务器。四家都能承载这种网站。对刚入门的人,先选一个平台走通发布、改稿和回退,比同时部署四家更有价值。
如果你在学习 Next.js,确实要服务端渲染、登录和 API,可优先评估 Vercel 的集成体验,但必须满足 Hobby 的个人非商业使用条件。面向国内访客并希望使用中国内地节点,可优先对照 EdgeOne Makers 与 ESA 的可用区域及备案条件。Cloudflare 适合研究静态托管与边缘应用;它现在明确建议新项目先看 Workers,Pages 并未因此被宣布立即停用。
本文是依据官方资料整理的部署与选型指南,没有在四家做统一网络或性能实测。国内访问效果会受地区、运营商、域名、节点与时间影响,不能承诺换个平台就一定更快。建议用同一页面在目标用户网络中验证,再迁移正式域名。
| 你的需求 | 优先评估 | 选择前确认 |
|---|---|---|
| 博客、作品集、文档 | 四家均可,优先静态构建 | 目标用户网络、域名、构建额度 |
| Next.js个人非商业应用 | Vercel Hobby | 商业限制及函数、流量额度 |
| 国内访客为主、使用内地节点 | EdgeOne Makers / ESA | ICP备案、可选区域、免费版适用范围 |
| 边缘应用、逐步增加API | Cloudflare Workers;同时理解Pages | 新项目官方路线、运行时与存储适配 |
免费的是哪些东西:托管、构建、函数分别算
托管是把文件交给访客;构建是把源码编译成可发布文件;函数是访客请求到来时执行服务端代码。一个页面可能只产生静态资源请求,也可能让每次访问都进入函数。不要把无限静态请求理解成无限服务端计算,也不要把构建额度当作访问人数。
域名注册与续费、数据库、对象存储、邮件、第三方登录和 AI 模型 API 往往有独立套餐。免费 HTTPS 通常只解决浏览器到站点的加密连接,不赠送域名所有权。一个免费托管的聊天页面调用付费模型,模型账单仍由你承担。
GB-s 是内存大小乘执行秒数,CPU小时则计量处理器实际工作。调用次数、CPU和内存时长可能同时形成限制,不能只看其中最宽松的一栏。本站表格保留各家的原始单位,也不把日额度乘30后宣称成可以集中用完的月额度。
部署前准备:源码仓库、生产分支和一个明确的产物目录
准备 GitHub 账号、一个测试仓库,以及受工具链支持的 Node.js 版本。源码放仓库,平台通过 Git 集成读取并构建。Git 是版本记录,GitHub 是代码托管,Pages/Makers/Vercel 是部署平台;三者职责不同。无需先租云服务器,也无需为首次部署另建 GitHub Actions。
下面用 Vite 原生 JavaScript 模板说明四家共通配置。命令会创建目录并安装依赖,执行前确认当前位置。首次生成锁文件后,后续构建优先使用对应包管理器的冻结安装方式;不要混用 package-lock.json、pnpm-lock.yaml 和 yarn.lock。
npm run dev 用于本地开发,不能填写成生产构建命令。这个示例的构建命令是 npm run build,产物目录是 dist;Astro、Hugo、Next.js静态导出的目录可能不同,应以自己的构建日志为准。多项目仓库还需把根目录指到具体子项目。
| 平台(Vite示例) | 安装 | 构建 | 产物目录 | 生产分支 |
|---|---|---|---|---|
| Cloudflare Pages | 按锁文件安装 | npm run build | dist | 本例main |
| Vercel | 按预设/锁文件安装 | npm run build | dist | 本例main |
| EdgeOne Makers | 按预设/锁文件安装 | npm run build | dist | 本例main |
| ESA Pages | npm ci(已有锁文件) | npm run build | ./dist | 本例main |
本地创建 Vite 示例(先确认 Node.js 版本满足当前 Vite 要求)
npm create vite@latest my-personal-site -- --template vanilla
cd my-personal-site
npm install
npm run build
npm run preview
# 停止预览后,推送到你自己创建的空 GitHub 仓库
git init
git add .
git commit -m "Create personal site"
git branch -M main
git remote add origin https://github.com/YOUR_NAME/YOUR_REPOSITORY.git
git push -u origin mainCloudflare Pages:先分清静态 Pages 与 Workers
Cloudflare Pages 的官方限制页列出 Free 每月500次构建、一次并发构建、20分钟构建超时,每站最多20000个文件、单文件25 MiB。文件数和文件体积是两个限制:拆成更多小文件不一定能解决总文件数问题。
Pages 的静态资源请求免费不限量,前提是请求没有调用 Functions。Pages Functions 与 Workers Free 共用每日100000次请求额度,按UTC零点重置。若同一账号上还有别的 Workers 应用,它们也会消耗这一池请求。
官方目前把 Workers 作为新应用的首选平台。本文保留用户熟悉的 Pages Git 部署路径,适合理解已有项目或纯静态场景;若你准备做长期发展的全栈应用,应同时阅读 Workers 的框架适配文档,不把 Pages 的额度直接套到 Workers Builds 或其他产品。
Cloudflare Pages 配置:Git导入、dist产物与域名绑定
进入控制台 Workers & Pages,选择创建应用中的 Pages,再连接 Git。授权 GitHub 或 GitLab,选择测试仓库,生产分支填你实际使用的分支;本教程的新仓库是 main。框架按 Vite或对应预设选择,构建命令 npm run build,输出目录 dist,根目录按项目位置设置。保存后等待构建日志完成,先使用平台提供的 pages.dev 地址验收。
Git集成项目会随连接分支提交自动构建,其他分支可提供预览。第一次创建时就决定使用Git集成还是Direct Upload,两者不能在控制台随意互换;需要改变工作方式时应先读对应限制,避免反复新建项目。
正式域名在项目 Custom domains 中先关联,再改 DNS。根域名如example.com,需要作为Cloudflare zone接入并配置其nameserver;仅绑定www.example.com等子域名,可保留外部DNS并添加平台要求的CNAME。不要只加CNAME却跳过项目域名绑定。完成后检查证书、HTTPS和主域名重定向。

Vercel Hobby:Next.js上手方便,个人免费不等于商用免费
Vercel Hobby明确限制为个人非商业用途。学习项目、个人实验可以按规则评估;如果网站用于收费服务、商业获利或商业推广,应核对公平使用条款并选择适用方案,不能因为只有一个开发者就认定符合Hobby。
核验时的Hobby额度包括每月100 GB Fast Data Transfer、10 GB Fast Origin Transfer、100万CDN请求、100万函数调用、4 CPU小时和360 GB小时预置内存时长。不同指标分别统计,不是其中一个没有用完就可以抵扣另一个。另有每日100次部署等限制。
官方说明超出多数Hobby使用额度后,需要等待相应恢复窗口,通常是30天;部分功能有不同周期。不要按“每月1号必定全部清零”设计业务,也不要把Pro的付费信用额和超额计费规则套在Hobby上。
Vercel 配置:先选对框架预设,再绑定域名
控制台创建 New Project,连接 Git 提供商并导入仓库。确认项目根目录、Framework Preset、安装命令、构建与输出设置,再添加需要的环境变量。Vite示例使用npm run build和dist;标准Next.js项目优先保留Next.js预设自动识别,不要把.next当成普通静态目录上传。
首次Deploy成功后,用vercel.app地址验收。确认项目的Production Branch与自己提交的分支一致,之后对该分支的提交会生成生产部署;预览地址能打开,并不代表正式域名已经指向该版本。
自定义域名在项目Settings的Domains中添加,按当次控制台提示配置A、CNAME或验证TXT记录,等待配置与证书状态正常。不要复制多年以前教程中的固定IP。环境变量要区分Production与Preview,更新服务端凭据后按平台要求重新部署验证。

腾讯 EdgeOne Pages 已升级为 Makers:别拿旧公测宣传当额度表
官方FAQ说明EdgeOne Pages已升级为EdgeOne Makers,扩展了全栈、Agent等能力,已有账号、项目、构建与域名行为延续。搜索时会同时遇到两个名称,本文所说的腾讯方案指这一托管平台,而不是只有CDN加速能力的另一份EdgeOne站点套餐。
11月3日读取的配额页仍列免费版500次构建/月、单并发、每次20分钟、40个项目、5 GB静态资源总存储、每项目20000文件和单文件25 MB。项目数和总存储按站点合计。边缘函数为300万次/月,同时有300万毫秒CPU时间限制;云函数另有100万调用及50万GB-s/月内存时长。
更需要留意的是商业化公告:平台预计11月9日至11日推出付费档,免费版仍保留,但构建将从500次/月改为300分钟/月,云函数内存时长改为5万GB-s/月。符合条件的存量用户有过渡安排,公告提到12月12日起按正常额度执行。这些是已公布的后续安排,不应提前写成11月3日已经生效。
按公告的新口径举例:若一次构建实际耗时3分钟,300分钟大约对应100次;这是简单估算,不是平台额外承诺的次数。慢构建、高频预览和大量内容改稿需要同时评估,最终以开通时控制台展示的适用套餐和公告为准。
EdgeOne Makers 配置:导入仓库时就确认加速区域
登录Makers控制台并开通免费方案,选择导入Git仓库,连接GitHub并授权所需仓库。官方还列出GitLab、Bitbucket、Gitee和CNB等入口;本教程用GitHub,避免把CNB需要额外配置Webhook的行为误当成所有提供商的统一流程。
选仓库后确认根目录与构建配置,Vite示例使用npm run build、dist,部署分支采用测试仓库main。在启动部署前选择加速区域。中国大陆可用区与含大陆的全球可用区,添加自定义域名需要备案;全球可用区不含中国大陆时不要求这一域名备案条件。
部署成功后先访问平台分配的地址,再到域名管理添加自定义域名,依次完成归属验证、CNAME和HTTPS证书配置。后续推送到部署分支可自动更新。不要把“腾讯云产品”理解成不管选什么区域都自动走中国大陆节点。

阿里云 ESA:站点免费套餐与函数免费模式是两道配置
ESA既提供站点加速与安全,也提供函数和Pages。中国站官方免费套餐说明支持0元购买与续费,套餐内流量和请求数不计费;同时明确有峰值带宽和单请求速率限制,不提供SLA,面向个人项目、开发测试等非核心场景。它不等于无限性能、无限服务保证。 中国站通用限制页还规定,每个UID免费版仅支持创建并绑定1个站点。
函数与Pages还有独立的免费/付费模式。免费模式每账号每日100000次函数请求、最多20个函数、每函数5个版本,官方当前写明每函数全网1000请求并发上限。超过日请求限制会返回503,直至次日零点恢复;文档没有在此明确标注时区,不能默认套用Cloudflare的UTC重置时间。
Pages流量使用站点套餐额度,动态函数调用按函数规则处理。因此只选免费函数模式,不能证明站点套餐和其他增值服务也免费。本文未在已读官方资料中确认ESA统一的月构建次数免费配额,不用其他平台的500次补齐;上线前以控制台限制为准。
中国站与国际站活动、入口版或推广赠送套餐可能不同。本文以阿里云中国站帮助中心规则为基准,不把国际站的活动宣传或限时权益混入长期免费规格。需要更多站点、更稳定生产业务时,重新确认套餐适用条件与费用。
ESA Pages 配置:静态站不需要先买一台源站服务器
在ESA控制台进入边缘计算和AI下的函数和Pages,确认账户使用免费模式,选择创建并导入GitHub仓库。连接账号、授权仓库后填写生产分支、安装命令、构建命令、根目录和静态资源目录。Vite示例是npm ci、npm run build、项目根目录、./dist;npm ci要求已有有效的package-lock.json。
纯静态项目先用控制台完成部署,不必为了照抄函数示例虚构一个入口文件。若仓库已存在esa.jsonc,它管理的配置优先于控制台;只改网页表单可能不会改变实际构建。下面的示例只表达静态构建与资源目录,不包含SSR函数,也没有给所有请求配置SPA兜底。
先用生成的公共预览链接确认页面,再接正式域名。域名绑定需要账号内有可用ESA站点;按套餐支持的接入方式完成NS或CNAME配置,在Pages的域名页绑定域名,并检查站点SSL/TLS证书。走CNAME接入时,只复制控制台给该域名生成的专属值。站点绑定与单纯加速一个外部源站是不同路径,使用Pages托管静态产物无需另租源站服务器。

Vite纯静态项目的esa.jsonc示例
{
"name": "my-personal-site",
"installCommand": "npm ci",
"buildCommand": "npm run build",
"assets": {
"directory": "./dist"
}
}Next.js、API与数据库:别把静态导出当完整服务端部署
普通静态网站最容易跨平台迁移。Next.js则有两条不同路径:静态导出生成out目录,不需要Node服务,但依赖请求时服务端执行的功能不能原样使用;完整SSR、服务端API与中间件需要平台支持的运行时和适配器。
Vercel提供直接的Next.js框架集成;Cloudflare的Pages框架入口列出静态Next.js导出,新全栈项目应看Workers当前适配路线;EdgeOne提供全栈框架指南。ESA已读框架说明对Next.js仍明确写静态生成模式,不能因为它能托管JavaScript函数就承诺任意Next.js工程无需修改直接运行。
账号系统、订单与用户数据还需要持久存储,不能依赖函数本地文件保存。跨平台迁移时逐项检查框架版本、Node API、图像优化、缓存、WebSocket和运行时绑定;先做最小接口验证,再决定是否搬完整应用。
国内访问和备案:选择的是节点,不是域名后缀
EdgeOne与ESA官方区域说明均把使用中国大陆/内地节点的自定义域名与ICP备案条件关联;不含中国大陆的区域有不同要求。不要仅凭.com、.cn或.com.cn后缀判断,也不要把拥有备案号误当成所有新平台都会自动完成接入关系。
已有备案的网站换服务商时,要区分域名注册商迁移、备案接入迁移与注销备案。阿里云说明中,取消接入与注销网站是不同操作;没有其他接入商时仍可能面临备案被注销的风险。若目标是保留备案,释放原资源或变更接入前,应向新旧服务商确认当前产品的接入资格与具体流程。
这篇教程不替读者承诺某个免费托管产品一定能作为备案接入资源。新手可以先在测试地址跑通网站,正式域名涉及的区域、备案与续费问题确认后再切换,不要先注销备案再排查怎么恢复。
| 平台 | 域名配置 | 中国内地节点 / 备案重点 |
|---|---|---|
| Cloudflare Pages | 根域名接入Cloudflare DNS;子域名可外部CNAME | 不能把普通Pages部署理解为已获得中国内地节点 |
| Vercel | 项目绑定后按提示配置A/CNAME/TXT | 不能因绑定自有域名就推断获得内地加速 |
| EdgeOne Makers | 域名归属验证、CNAME、HTTPS | 大陆或含大陆全球区:自定义域名需备案 |
| ESA Pages | 可用ESA站点中绑定;按接入方式配置NS/CNAME | 中国内地或全球区需备案;不含内地区域另行选择 |
发布后验收:绿勾不是终点,刷新深层页面再看一次
构建成功只代表产物生成。正式上线至少还要检查首页、一个深层路径、一个不存在的路径、CSS/图片请求、HTTPS、手机端与sitemap。深层路径直接粘贴到地址栏并刷新,能发现只在站内点击正常的路由问题。
单页应用可能需要fallback,静态多页站或函数SSR则不能照搬。ESA文档特别说明同时配置函数与assets.notFoundStrategy时,导航请求不会触发函数脚本;把SPA兜底加到动态站可能改变整站行为。先确定应用类型,再设置路由。
401/403先查授权与访问保护,404先查产物目录、路由和生产分支,503同时查函数额度、上游依赖和平台状态。不要把所有503都归咎免费额度耗尽。DNS错误则先看解析和本机代理,不急着重部署一个没有问题的版本。
日常更新与回退:先用预览验证,再让正式域名跟随
最简单的维护方式是改源码、提交Git、由平台原生Git集成自动构建。保留构建日志和提交SHA,出现问题能回到最近一次已验收版本。回退代码、回退部署与回退DNS是三个不同动作,先明确哪个环节出错。
生产分支由项目设置决定,可能是main,也可能是独立发布分支。教程示例的新仓库选main,不代表已有项目应当为了更新内容随意改生产分支。若网站另有运行时内容源,内容提交与代码部署也可能分开;变更前先读项目自己的说明。
密钥放平台的服务端加密变量,不能写到仓库或VITE_、NEXT_PUBLIC_等会进入浏览器产物的公开配置中。需要调用付费AI接口时,让受控服务端处理认证、限额与滥用防护,而不是把个人Key放在前端页面。
按你的第一年需求选择,而不是只比较零元按钮
个人博客或作品集,优先考虑静态构建、目标网络能否访问、域名操作难度和备份迁移。Next.js学习项目,Vercel可以减少初始适配,但应满足个人非商业条款。国内用户为主且准备好备案时,比较EdgeOne和ESA在目标区域、免费适用范围与后续付费升级上的条件。
需要收款、用户数据或持续营收时,先确认商业条款、稳定性、数据库和预算,再谈免费额度。没有SLA的免费方案适合开始和验证,但不要用它替客户业务承诺可用率。决定迁移前保留源码、锁文件、环境变量清单和域名记录备份。
本文核验日期为2026年11月3日。腾讯的11月商业化调整已单独标出;各家后续配额与控制台入口仍可能变化。真正能长期省钱的做法,是让网站足够简单、静态内容尽量静态化、用量可见、出现故障能够退回,而不是寻找一张永远不会变化的免费清单。
开始前检查
- 明确是静态站、SPA还是需要SSR/API的应用
- 核对个人/商业使用条件与账户免费套餐
- 构建命令、输出目录、根目录、锁文件和Node版本一致
- 确认生产分支与环境变量作用环境
- 核对节点区域、域名与ICP备案接入条件
- 默认域名验收后再改正式DNS,保留回退记录
- 检查深层路径刷新、真实404、HTTPS、图片与移动端
- 查看函数、构建、流量和外部服务的独立用量
参考来源
依据下列官方文档与公告整理,额度核验日期见文章说明。部署步骤为编辑归纳,未宣称完成各平台统一性能实测;实际开通前请复核套餐与控制台。
- Cloudflare Pages 官方部署文档
https://developers.cloudflare.com/pages/get-started/git-integration/ - Vercel 官方 Git 部署文档
https://vercel.com/docs/git - 腾讯 EdgeOne Makers 官方部署文档
https://pages.edgeone.ai/zh/document/importing-a-git-repository - 阿里云 ESA Pages 官方部署文档
https://help.aliyun.com/zh/edge-security-acceleration/esa/user-guide/connect-pages-to-github