从 Nginx Proxy Manager 切换到 Traefik 对这套基础设施来说是一次重大转折,以下是原因。
为什么要切换
迁移到 Traefik 的主要原因是可扩展性。与需要通过 Web UI 手动配置的 Nginx Proxy Manager 不同,Traefik 的配置直接写在 Docker Compose 文件中。这意味着当你迁移到新服务器或扩展基础设施时,不需要手动重建配置——一切都已经以代码形式定义好了。
标签的妙处
使用 Traefik,你只需在 Docker 服务上添加标签,代理配置就会自动完成。以下是一个服务配置示例:
labels:
- "traefik.enable=true"
- "traefik.docker.network=proxy"
- "traefik.http.services.humfurie.loadbalancer.server.port=80"
- "traefik.http.routers.humfurie.rule=Host(`humfurie.org`)"
- "traefik.http.routers.humfurie.entrypoints=websecure"
- "traefik.http.routers.humfurie.tls=true"
- "traefik.http.routers.humfurie.tls.certresolver=letsencrypt"
- "traefik.http.routers.humfurie.middlewares=fallback-errors@file"
- "traefik.http.routers.humfurie-www.rule=Host(`www.humfurie.org`)"
- "traefik.http.routers.humfurie-www.entrypoints=websecure"
- "traefik.http.routers.humfurie-www.tls=true"
- "traefik.http.routers.humfurie-www.tls.certresolver=letsencrypt"
- "traefik.http.routers.humfurie-www.middlewares=fallback-errors@file"
主要优势
基础设施即代码:所有代理配置都与服务一起进行版本控制。
自动发现:Traefik 会自动检测新服务并配置路由,无需人工干预。
轻松迁移:迁移到新服务器只需带上你的 Docker Compose 文件即可。
Let's Encrypt 集成:SSL 证书管理内置且自动化。
结论
如果你正在管理多个服务并计划扩展,Traefik 基于标签的配置方式比传统代理管理器更易维护。前期的学习成本,换来的是将整个基础设施以代码形式定义所带来的长期收益,是值得的。