一台个人博客服务器,跑了十年。配置不夸张:DigitalOcean 纽约 VPS,2GB RAM、1 vCPU、50GB 磁盘,月费约 13 美元,系统还是 Ubuntu 16.04 LTS。

它甚至很能撑。作者关机前看到的 uptime 是 1491 天,接近四年没重启。但这也正是反常的地方:一台暴露在公网、系统早已停止标准支持的机器,越稳定,越容易被人忘掉。

这次迁移的结果是:服务器搬到 Hetzner 德国机房,系统换成 FreeBSD 14.3,并用 Bastille 管理 FreeBSD Jails。每个静态站点放进独立 Jail,Caddy 单独跑在一个 Jail 里,负责 HTTPS 和反向代理。

我更在意的不是“FreeBSD 是否全面优于 Linux”。这个案例真正说明的是:个人静态站点在低成本 VPS 上,最该算的不是阵营账,而是维护债、隔离性和出事后的恢复成本。

旧服务器的问题不是不能跑,是不该继续赌

旧栈很朴素。Ubuntu 16.04 x64,nginx/1.10.3 托管静态页面,博客由 Hugo 生成。发布流程也偏手工:本地写作,提交代码,SSH 到服务器,拉仓库,再运行 Hugo。

这套东西能跑十年,本身说明它够简单。简单系统有一个好处:少动少错。问题是,Ubuntu 16.04 LTS 的标准支持早已结束,软件源和安全更新都不再像受支持版本那样可靠。

原文没有说旧服务器被入侵。这里不能替它编故障。但公网服务器长期停在 EOL 系统上,本质是在把安全更新、依赖安装和故障恢复都押给运气。

迁移还不只是安全。作者人在德国,Hetzner 的机器离他更近,价格更低,配置也更高。这个选择放在他的场景里成立,但不能直接推广成“Hetzner 一定优于 DigitalOcean”。如果主要访问者在北美,机房位置、延迟、支持体验都会改变判断。

项目旧环境新环境这笔账怎么算
云服务商DigitalOcean 纽约Hetzner 德国对作者更便宜、更近,但不代表普遍更优
系统Ubuntu 16.04 LTSFreeBSD 14.3关键是回到可维护状态
配置/价格2GB RAM、1 vCPU、50GB,约 13 美元/月原文称更便宜、配置更高成本下降是迁移动机之一
Web 栈nginx 静态站点Caddy 反代 + 多个 Jails证书和入口层更集中
发布维护手工 SSH 后构建每站点独立环境更利于拆分、重建和排错

对还在维护老 Ubuntu、Debian 或 CentOS 小服务器的人,这里有一个直接动作:先查系统是否 EOL,再查 apt/yum 源是否还能稳定拿到安全更新。不要等到下一次改文章、续证书、装依赖时才发现整套环境已经锈住。

新架构的价值在隔离,但不是免费午餐

作者选择 FreeBSD,一部分是兴趣,一部分是看中 Jails 和 ZFS。Jails 不是 Docker 的换皮版本。

Docker 常被用来打包应用,强调镜像、部署和较短生命周期。FreeBSD Jails 更像共享内核下的轻量子系统。它可以长期运行,可以登录进去装工具,也可以像一台“小机器”那样维护。

新架构的主线很清楚:每个站点一个 Jail。需要 Hugo 或其他构建工具,就放在自己的环境里。对外只暴露 Caddy Jail,由它监听 80 和 443,自动处理 HTTPS 证书,再把请求反向代理到对应站点。

宿主机这一层,则用 PF 防火墙和内部虚拟网络把 Jails 串起来。ZFS 提供快照能力,遇到误操作时更容易回滚,也减少对 VPS 厂商付费备份的依赖。

这对多站点个人维护者有实际意义。一个站点配置坏了、依赖脏了,甚至出现安全问题,理论上可以销毁并重建对应 Jail。它不会把所有站点、构建工具、Web 服务都搅在同一个宿主机环境里。

但代价也清楚。FreeBSD、PF、ZFS、Bastille、Caddy、Jails,每一层都要理解一点。只想放一个 Hugo 博客的人,用受支持的 Ubuntu/Debian LTS,加 Caddy 或 nginx,可能更省心。

如果目标是尽量少运维,Netlify、Cloudflare Pages、GitHub Pages 这类托管静态站服务也许更合适。它们牺牲的是系统控制权,换来的是少管服务器。对很多个人博客,这笔交易并不亏。

路线适合谁收益现实限制
继续用 Linux LTS + nginx/Caddy只想稳定托管一个小站的人学习成本低,资料多隔离和回滚要自己补
FreeBSD + Bastille Jails想练系统运维、维护多个小站的人隔离清楚,可销毁重建初始复杂度更高
托管静态站服务不想管服务器的人证书、部署、可用性更省心控制权和可玩性下降

对 FreeBSD、Jails、低成本 VPS 运维感兴趣的技术读者,这个案例更像一个合适的练手项目:规模小,风险可控,能把网络、文件系统、证书、反代和隔离都串起来。不要一上来拿生产业务试刀。先拿个人站点验证重建脚本、备份策略和证书续期。

迁移后最该盯的不是跑分,是能不能重建

这类个人站点迁移,最容易被误读成性能升级。可原文没有给完整基准测试、流量数据或故障统计,所以不该硬说它性能大幅提升。

目前能确认的价值,是架构更清楚了:站点被拆开,入口收敛到 Caddy,证书自动化,ZFS 可做快照。它至少让维护者不必把所有东西都堆在宿主机上。

后面真正该观察三件事。

观察点为什么重要不达标会怎样
Jail 能否脚本化重建隔离的价值要靠可恢复兑现坏了仍要手工救火
Caddy 证书和反代是否长期稳定入口层出问题会影响所有站点多站点一起不可用
ZFS 快照是否配合异地备份本机快照挡不住整机丢失VPS 事故时仍可能全丢

只在同一台 VPS 上做快照,不等于备份。它能救误删、配置改坏,挡不住账号事故、磁盘损坏或整机丢失。小站无大流量,不代表没有恢复需求。

这也是这篇实践记录最有用的地方:它把“还能跑”换成了“能不能维护、能不能隔离、能不能重来”。对个人网站来说,迁移窗口比技术选型更关键。系统还活着的时候拆,成本最低;等包管理器、证书、构建工具一起出问题,就成了集中还债。

所以,这不是一篇阵营文。FreeBSD 没有因此压过 Linux,Hetzner 也没有因此压过 DigitalOcean。它更像一次边界清楚的个人基础设施翻修:趁旧房子还没漏雨,把电线、水管和隔墙重新理一遍。

能跑十年当然难得。但对公网服务器来说,寿命不是唯一指标。该换的时候还不换,稳定也会变成债。