
一台服务器部署 3 个项目:Traefik + Docker Compose 实战
背景
当你有多个独立项目(商城、语音助手、IoT 平台)需要部署到同一台服务器时,如何优雅地管理域名、证书和服务隔离?
架构设计
Traefik (443)
├── botof.cn → 门户页
├── mall.botof.cn → 商城
├── voice.botof.cn → 语音助手
└── plant.botof.cn → 植物监测
核心思路:一个 Traefik 实例 + 多个独立 docker-compose 文件,通过共享的 proxy 网络连接。
关键配置
共享网络
每个项目的 compose 文件都连接同一个外部网络:
networks:
proxy:
external: true
Traefik Labels
每个服务通过 Docker labels 声明路由规则:
labels:
- "traefik.http.routers.my-app.rule=Host(`app.botof.cn`)"
- "traefik.http.routers.my-app.tls.certresolver=letsencrypt"
数据库共享
PostgreSQL 通过 init 脚本为每个项目创建独立数据库,互不干扰。
内存规划
8GB 服务器的分配方案:Traefik 128MB + PostgreSQL 1.5GB + Redis 300MB + 各服务 256-512MB。