上回我们把一台旧笔记本改造成了加固版Debian服务器。现在它跑起来了,但空有硬件没用——得让它真正"可用"。这篇接着讲怎么部署三套核心服务:流量入口、监控体系、以及一个漂亮的服务导航页。
整套方案的核心思路是"分层解耦"。Nginx Proxy Manager(NPM)作为唯一入口,既管反向代理,又创建一个共享的Docker网络;后面的所有服务都挂在这个网络上,彼此能找到对方,对外却统一走NPM的端口。这比每个服务各自暴露端口干净得多。
先部署NPM。创建目录、写docker-compose.yml、启动——三步搞定。配置里关键一行是name: npm_default,这个命名网络就是后面所有服务的"接头地点"。启动后访问服务器的81端口,能看到NPM的管理界面。此时它还没代理任何服务,但基础设施已经就位。
监控层是Prometheus全家桶:Prometheus本体负责拉取指标,Node Exporter暴露硬件数据,cAdvisor专门扒Docker容器的统计信息,Grafana最后把数字画成图表。四者之间有个依赖关系要注意——Prometheus需要预先知道去哪抓数据,所以得先写一份prometheus.yml,里面用服务名(如node-exporter:9100)而不是IP地址,这正是Docker网络的好处。
docker-compose.yml里有个细节:四个服务都声明了networks: - default,但文件顶部并没有定义default网络。这是因为我们要让它们自动接入NPM创建的那个npm_default网络。实际操作中,你需要在compose文件里显式指定external: true引用外部网络,或者让NPM和监控栈使用同一个compose项目——原文这里留了个小坑,实际部署时可能遇到网络不可达的问题。
最后的服务导航页用Homer。它的价值常被低估:当你有十几个服务跑在不同端口,记住每个地址是反人类的。Homer提供一个可自定义的静态页面,图标、链接、分组全可配置,本质上是个"书签管理器+状态面板"。部署时同样接入npm_default网络,然后在NPM里配个域名指向它,最终效果是在浏览器输入一个地址,看到所有服务的入口卡片。
这三层搭完,家庭服务器的骨架才算完整。NPM管入口和TLS,监控层让你知道机器在干什么,Homer降低使用门槛。下一步通常是往里面塞具体应用——但那就是另一个故事了。
热门跟贴