Traefik 反向代理
Halo 部署
跳过 Halo 反向代理配置
「反向代理」 部分不进行操作,保证 Halo 服务运行无误即可。
简介
Traefik 是一款开源的反向代理与负载均衡工具,它监听后端的变化并自动更新服务配置。
它与传统反向代理最大的区别,是支持声明式的动态路由规则,大大简化网关规则的配置。而且还有诸多实用特性,例如:健康检查、多实例负载均衡、能够实现 Let's Encrypt 证书的自动签发、验证与续期等等。
创建 Traefik
下面的配置中,创建了 Traefik 实例。并且做了基础的几项配置:
- 监听了宿主机的 80、443 端口,并自动将 80 端口的请求重定向到 443 端口。文档
- 开启 Docker 服务发现,监听检测 Docker 容器声明的服务关系。文档
- 开启 Traefik Dashboard,建议使用二级域名的形式(示例:
traefik.yourdomain.com)。文档 - 开启证书自动生成,通过 ACME 自动管理 TLS 证书的申请、校验与续期。文档
持久化 ACME 证书
创建工作目录、Compose 文件和 ACME 证书存储文件:
保存配置后启动 Traefik:
配置 Halo 的反向代理
这里以最简配置(h2 数据库)Halo 服务的 Docker 配置举例。只需做以下调整:
- 顶层
networks中添加了外部网络traefik services.halo.networks中添加了traefik网络services.halo.labels中声明了 Traefik 配置- 路由规则为
yourdomain.com - 开启 TLS
- 指定了服务端口为 8090
- 路由规则为