我有五台服务器,分布在三个云厂商。

最早就一台,后来服务越来越多,一台扛不住,就开始加。加着加着就五台了。

为什么是五台

一开始全放一台机器上,数据库吃内存把 Web 服务挤挂过。后来按职责拆了:

  • A(腾讯云):核心业务
  • B(阿里云):轻量应用 + 监控中心
  • C(腾讯云):网关层 + AI 助手
  • D(华为云):边缘节点

SSH 管理

禁掉密码登录,只用密钥。改掉默认端口。用 SSH Config 统管所有机器。

1
2
3
4
5
Host A
HostName x.x.x.x
Port xxxx
User root
IdentityFile ~/.ssh/key_a

五台机器不用 Ansible,SSH Config 加个巡检脚本够了。

Docker 统一化

宿主机上除了 Docker,啥都不装。每个服务一个目录:

1
2
3
service-name/
├── docker-compose.yml
└── data/

重启策略 unless-stopped,机器重启后服务自动拉起来。

网络与安全

公网只开放三个端口:SSH、80、443。其余端口全部关闭,防火墙白名单模式。

内部通信走内网端口,不对外暴露。Tailscale 给移动设备用,出门在外手机或笔记本连回内网查东西。

所有内部服务加统一认证,没登录的人连页面都看不到。

监控

轻量级方案,没上 Prometheus + Grafana。一台机器跑中心节点,其余装 Agent。CPU、内存、磁盘、网络一个面板看完。

告警推到手机,半夜服务挂了能收到通知。

备份

每天凌晨自动跑,备份完传到对象存储。脚本是 AI 帮忙写的。

配置和工作空间用 Git 管理,推到私有仓库,相当于异地备份。

教训:备份不验证等于没备份。定期做一次恢复测试。

域名与路由

一个域名,靠子域名区分所有服务。证书用通配符,不用每个子域名单独申请。DNS 和域名管理交给 AI 维护,我只下指令。

AI 助手

24 小时在线,能干这些:

  • 服务器巡检,跑完出报告
  • 日志分析,异常预警
  • 写备份脚本、监控脚本
  • 群聊里直接问服务器状态

以前出了问题去查,现在 AI 查完了告诉我。

最后

搭好自动化体系,让机器自己跑、自己备份、自己报警。人只在出问题的时候介入。

够用、稳定、能快速恢复,比什么都重要。