Traefik 与 nginx 一样,是一款反向代理的工具,至于使用他原因基于以下几点
- 漂亮的 dashboard 界面
- 可基于容器 label 进行配置
- 新添服务简单,不用像 nginx 一样复杂配置,并且不用频繁重启
- 对 prometheus 和 k8s 的集成
- 尝试一下...
接下来讲一下它的基本功能以及文件配置
安装
下载二进制文件,指定配置文件,直接执行可以启动。
./traefik -c traefik.toml
复制代码
当然,你也可以通过 docker 启动,参考 Traefik Get Started。
另外,如果需要使用 docker 启动,需要所有的服务都在一个 network 中,或者设置 traefik 的 network 为 host。
启动成功后,可以访问 localhost:8080
访问 Dashboard 页面。
问题
- 每当有配置改动需要重启时,只能杀了进程,然后启动,导致服务有短暂的暂停
- 补充一下,每当使用 docker 新添一个服务时,不需要更改配置,或者更改部分配置时,如 file provider,traefik 会监听配置文件变化并自动重启。但是需要修改 https 的证书或者日志的路径时,需要手动重启。所以需要手动重启的时候并不是很多。
- 当配置文件修改后,会有语法错误,无法向
nginx -t
一样检查是否配置文件有问题
日志
[accessLog]
# Sets the file path for the access log. If not specified, stdout will be used.
# Intermediate directories are created if necessary.
#
# Optional
# Default: os.Stdout
#
filePath = "./traefik-access.json"
# Format is either "json" or "common".
#
# Optional
# Default: "common"