共享服务器最危险的操作,不一定是删除文件,而是在不了解现有结构时直接占用端口、复用数据库或重启反向代理。

为一台已经运行多个站点的服务器增加 Halo 博客时,我采用以下边界。

构建留在本地

主题依赖安装、前端编译和资源处理全部在本地完成。服务器只接收构建产物和固定版本的容器配置,避免编译过程占用 CPU、内存和磁盘缓存。

数据完全隔离

博客使用独立目录、Docker 网络、数据库和持久化卷。不连接其他业务数据库,也不共享应用数据目录。这样即使删除博客容器,也不会触碰其他站点数据。

明确资源上限

为 Halo 和数据库设置内存与 CPU 限制,同时约束日志大小。容器健康并不代表资源使用合理,部署后还要观察一段时间的内存、负载和磁盘增长。

代理配置必须可回退

新增域名配置前先备份现有文件,执行配置检查,通过后再平滑重载。若检查失败,停止部署,不带着错误配置继续尝试。

验收不只看首页

至少检查 HTTPS、后台登录、文章页、图片上传、评论、重启恢复和原有域名。只有新站点正常且旧站点无变化,部署才算完成。

共享服务器可以节省成本,但每个服务都必须像住在独立房间里:有自己的门、自己的数据和明确的用量边界。