记录我如何依靠免费套餐搭建个人工作室与营销作品网站,以及在数据库迁移、证书链和主备架构中逐步解决问题的过程。
标签
项目概述
没有预算,也没有计算机科学学位,能否做出像样的 Web 应用?我给自己设定了一项挑战:完全使用免费套餐搭建个人工作室与营销作品网站。这段经历不只是为了完成一个网站,也是一次在不增加基础设施费用的条件下解决实际问题的尝试。
最初的障碍
我的设想是打造一个“持续在线”的作品网站。最初选择的 Neon 很适合开发,但项目当时使用的免费套餐只有 50 小时计算额度。应用上线不到 24 天就触及上限,让我认识到必须仔细核对免费服务的边界,并寻找更适合持续运行的方案。
转向 Aiven
后来,我转向 Aiven。当时它提供的持续运行免费数据库套餐,符合我通过 Uptime Robot 监测应用的需求。但迁移并不顺利:成功使用 pg_restore 恢复数据后,我遇到了 self-signed certificate in certificate chain 错误,也就是证书链中存在自签名证书、未被当前信任配置接受的问题。
问题解决过程
我开始使用 openssl s_client 检查证书链,发现问题在于 Node.js 没有信任所需的两部分证书。随后,我将相关证书拼接为证书包,配置 NODE_EXTRA_CA_CERTS 环境变量,让 Render 上的 Node.js 服务能够信任完整证书链。
最终架构
这一阶段完成的架构由 Render 上的两个 Strapi 实例组成,一个作为主实例,另一个提供只读备份;Aiven 提供数据库,定制 Cloudflare Worker 负责请求调度。它让我在基础设施费用为 0 美元的条件下,进一步探索主备服务与可靠性设计。
结论与要点
这次实践让我认识到,免费套餐也能支撑有一定复杂度的个人项目,但前提是理解资源限制,并愿意排查迁移、证书与服务依赖等问题。对我这个非计算机专业出身的开发者来说,最大的收获是逐步建立了面对基础设施问题时的分析与解决能力。


