能免费部署后端的平台,大多有同一条规矩:闲置一段时间就把服务停掉,下一个访客得等它重新启动。Render 的这个等待约一分钟,期间看到的是加载页。
之前写 Render 的时候说过,这件事有办法绕过去,不止一种,不用花钱。这篇把三条路一次讲清。
路一是定时访问保活,cron-job.org 和 UptimeRobot 的免费档都够用,代价是吃掉 Render 每月 750 小时的免费时长,而且官方文档没写允不允许。路二是换一家官方明说不休眠的平台,Northflank 免费给 2 个服务。路三是把前端拆成静态站,只让 API 睡。
先把休眠规则看清楚
以 Render 为例,官方文档写得很具体:免费 Web 服务 15 分钟没有任何入站流量就被停掉,HTTP 请求和已有 WebSocket 连接上的消息都算流量。下一次有请求进来再拉起,约需一分钟,期间浏览器看到的是加载页。
还有一条容易漏看:每个 workspace 每月只给 750 个免费实例小时。服务跑着的时候才消耗,睡着的时候不算。750 小时用完,所有免费 Web 服务停到下个月初,余下的小时不累积。
路一:定时访问保活
原理很简单:每隔不到 15 分钟访问一次服务地址,它就没机会闲置。有现成的免费工具。
cron-job.org 是一家老牌的在线定时任务服务。官方 FAQ 写明:整个服务免费,靠捐赠运营;每个任务最快每分钟执行一次;不限制任务个数,但要求合理使用;单次请求 30 秒超时;连续失败超过 25 次自动停用。
要不要绑卡,官方页面没写,以注册页为准。
UptimeRobot 本职是监控网站有没有挂,顺便也能保活。官方定价页写明:免费档 0 美元,50 个监控,最短 5 分钟检查一次,明写不要信用卡。60 秒间隔是付费档才有,保活用不上,5 分钟已经远短于 15 分钟。
代价有三条。第一条是算术:一个服务 24 小时不睡,一个月最多 31 天乘 24 小时等于 744 小时,刚好卡在 750 之内;两个服务都保活就超了,超了当月全停。这是按官方数字自己算的。所以保活只能保一个。
第二条是官方态度。Render 的免费文档、FAQ、服务条款和可接受使用政策,我逐个翻过,都没写「外部定时访问保活」是允许还是禁止。可接受使用政策里只有一句泛泛的话:不得给基础设施施加不合理负载,尤其是为了逃避付费。5 分钟一次的普通 GET 算不算,官方文档没写。
第三条是平台模式。这招只对 Render 这种「按时长送、睡着不扣」的模式划算。Railway 那种按用量计费的免费档,闲置 10 分钟休眠,每月只给 1 美元额度,叫醒它等于替它烧钱,一个 250MB 的服务不睡 12 天左右就把额度花光。
路二:换一家不休眠的平台
如果你的服务是 Webhook 接收端或者机器人,对方回调不会等你一分钟,保活的思路本身就不够稳,那就换平台。
Northflank 是一家海外的容器托管平台,免费 Sandbox 档在官方定价页上写了原话「Always-on-compute – no sleeping :)」,常驻不休眠。免费给 2 个服务、1 个数据库、2 个定时任务,能跑 Docker 任意镜像,数据库能选 Postgres、MySQL、Redis。
代价也要说清:官方文档写明所有用户都要先添加支付方式才能创建资源,定价页 FAQ 说绑卡只做验证、不扣款。免费服务给多少 vCPU 和内存,官方定价页没公开。2 个服务的额度,一个前端加一个后端刚好用完。
路三:把静态部分拆出去
很多项目只有一小部分需要后端。一个前端页面加几个 API 接口,整个打包成一个 Web 服务丢上去,结果访客打开首页也要等唤醒。
Render 的静态站是免费的,官方文档写明休眠这类限制只针对 Web 服务,静态站不休眠。所以拆成两块:前端构建成静态文件,单独部署成静态站;API 单独开一个 Web 服务,该睡就睡。
访客打开页面秒开,只有点到要调 API 的功能时才等一次唤醒,前端可以先给个加载提示,或者在页面加载时先向 API 发一个空请求提前叫醒。带宽方面,静态站和 Web 服务一起计入每月 5GB 出站流量。
这条路不适合 Webhook 接收端,对方直接打 API,前端帮不上忙。
怎么选
三条路放在一张图里:

demo、作品集、内部工具,走路三,成本最低。一定要随时在线的单个小服务,走路一,记住只能保一个。Webhook、机器人、要数据库的,走路二,接受绑卡验证。三条路可以叠着用:前端拆静态,API 放 Northflank,一分钱不花。
本文来源:壹贰云测评,如若转载,请注明出处:https://www.12dns.cn/763.html