关于共享 Unix 主机与云的评论

2025 年 2 月 6 日,作者发布博客,是对关于脚本、CGI 和 FastCGI 的评论的后续,6 月时在 lobste.rs 有相关评论。文中提到 Dreamhost 的问题,以及 CGI 和 FastCGI 协议的衰落,作者放弃了 FastCGI,但未放弃轻量级网页脚本,这是仍使用共享主机的原因之一。作者将新的oils.pub域名从 Dreamhost 迁移到 Mythic Beasts 共享主机,并分享了迁移经历和对其他服务的考察。

  • 共享主机介绍:作者使用并推荐共享主机多年,但发现云原生程序员对其缺乏认知,认为 Unix 不是多用户系统,而是虚拟机或容器的组件。作者举例说明共享主机可用于静态网站,如在 2022 年关于服务静态文件的文章评论中提到。
  • 共享主机的合理性与现状:理论上共享主机仍有意义,单台 Linux 内核可轻松服务 1000 个网站,静态网站生成器和客户端 JavaScript 等的发展也使其更适用。但实际上,高质量的共享主机已不再是普通商品,PHP 主机仍是商品,而 Unix 主机不是,作者之前对共享主机的概括可能过于宽泛,如今发现像 Dreamhost 这样的服务替代品较少。
  • 迁移原因:6 月时 Dreamhost 将作者账户迁移到新服务器,不再可靠支持 FastCGI,新的 cgroups 配置干扰 FastCGI 进程,还会杀死 SSH 进程导致无法调试问题。尽管作者通过robots.txt限制爬虫使服务器更响应,但动态页面流量几乎为零时问题仍持续,且oils.pub的日志轮转和压缩功能也出现故障,尽管支持称已修复但很快又出问题,且可能数月得不到处理。作者认为共享主机主要靠 PHP 盈利,对 Unix 部分不太重视,SSH 不稳定且缺乏支持也不可原谅,但仍感谢 Dreamhost 提供的 15 年服务。
  • 对云服务的思考:作者在迁移过程中曾考虑使用云服务,如推荐 Github Pages 给贡献者用于静态网站,但查看其他托管服务后发现没有明显稳定的选择,如 Simonwillison 网站的托管标签下未看到明显合适的,作者认为 web 和云托管不稳定,尤其对于关心长期使用的情况,Python 在此方面不如 PHP,如 Heroku 的免费套餐结束等也让作者有此感受,同时看到其他长期维护博客也有困难,如 Joel Spolsky 的 CityDesk 停止服务。
  • Mythic Beasts 主机:作者的网站现在运行在 Mythic Beasts 上,因为它是 Unix 主机而非仅 PHP 主机,可运行持久 HTTP 服务器并由systemd监督,还能请求 Postgres DB,支持良好,但日志轮转方案不利于备份和离线分析,作者已通过 shell 脚本解决。
  • 其他主机考察

    • A2Hosting:作者曾认为其硬件和网络快,但实际控制面板软件糟糕,设置简单子域都困难,很快取消账户浪费 30 美元左右,体会到共享主机的“低价竞争”。
    • OpalStack:是支持 Python 的独特共享主机,通过 uWSGI 支持,但其协议 uWSGI 架构奇特,对多种语言都有特殊支持,紧密耦合且协议庞大,作者目前仍保留账户但仍坚持使用普通 HTTP 服务器。
    • NearlyFreeSpeech:基于 FreeBSD,有类似云的按使用量计费模式,作者几年前用过,感觉不错,希望其继续发展。
  • 云服务的问题:作者认为大多数云服务存在两个问题,一是缺乏开放协议导致应用与平台紧密耦合,如大多数云服务对每种语言都有特殊支持,缺乏现代版 CGI 和 FastCGI 协议,如在使用 Zig 或 YSH 等新语言时难以接入云服务;二是缺乏稳定性,长期来看可能因商业模式而不稳定,而共享主机如 Dreamhost 能稳定服务 15 年,迁移到 Mythic Beasts 也较容易。Unix 的可执行文件和 shebang 线等机制使其语言独立,作者认为应将云视为真正的操作系统。
  • 哲学与引用:引用My first impressions of web3My comment on the essence of Unix,强调应减少软件构建负担,避免软件复杂性和庞大的云工程师团队,可从 commodity 硬件和 Unix 内核开始,Unix 外壳也是起点。
  • 结论:作者希望能编写脚本并通过 SSH 连接到强大的 Unix 主机,不再普遍推荐共享主机,因为它已不是普通商品,但庆幸找到多个高质量服务,读者可自行得出结论并告知作者是否有遗漏。
  • 附录:一些云服务:列举了一些静态网站/CDN 服务如 Github Pages、Netlify、Cloudflare Pages 和 Sourcehut Pages,以及应用/平台即服务如 Heroku、Render、Vercel、platform.sh、Railway,还有云硬件/CDN 如 fly.io 和 IaaS 如 AWS、GCE、Azure 等,认为很多公司不符合“Lindy Effect”标准,作者欢迎读者分享在云环境中脚本编写的良好经验。
阅读 9
0 条评论