Traefik File Provider 文档
File Provider
File Provider 允许你在 YAML 或 TOML 文件中定义动态配置(即路由配置)。
它支持通过单个配置文件或多个独立文件来提供配置。
提示
File Provider 是文档中用于展示许多功能配置示例的默认格式。
File Provider 是重用其他 Provider 公共元素(如声明白名单中间件、Basic 认证等)的良好解决方案。
配置示例
启用 File Provider
YAML 格式:
yaml
providers:
file:
directory: "/path/to/dynamic/conf"TOML 格式:
toml
[providers.file]
directory = "/path/to/dynamic/conf"CLI 格式:
bash
--providers.file.directory=/path/to/dynamic/conf单文件模式
yaml
providers:
file:
filename: /etc/traefik/dynamic.yml目录模式
yaml
providers:
file:
directory: /etc/traefik/dynamic/
watch: true路由器、中间件、服务的声明
yaml
http:
# 路由器
routers:
router0:
entryPoints:
- web
middlewares:
- my-basic-auth
service: service-foo
rule: Path(`/foo`)
# 中间件
middlewares:
my-basic-auth:
basicAuth:
users:
- "test:$apr1$H6uskkkW$IgXLP6ewTrSuBkTrqE8wj/"
# 服务
services:
service-foo:
loadBalancer:
servers:
- url: http://foo/配置选项
| 选项 | 描述 | 默认值 |
|---|---|---|
providers.file.filename | 单个配置文件路径(与 directory 互斥)。 | - |
providers.file.directory | 配置文件目录(与 filename 互斥)。 | - |
providers.file.watch | 监听配置文件变化。 | true |
providers.file.debugLogGeneratedTemplate | 调试日志。 | false |
文件格式
支持的格式:
- YAML(
.yml、.yaml) - TOML(
.toml) - JSON(
.json)
适用场景
- 集中管理:将所有路由配置集中在一个或多个文件中
- 版本控制:使用 Git 管理配置文件
- CI/CD 集成:在部署流水线中管理配置
- 复用公共元素:如通用的中间件、ServersTransport 等
最佳实践
- 使用 directory 模式:将配置拆分为多个文件(如
tls.yaml、middlewares.yaml),便于管理。 - 敏感信息使用环境变量或 secret 引用:不要将明文密码放在文件中。
- 结合 Helm 或 Kustomize:在 Kubernetes 环境中,可以使用这些工具生成动态配置。
- 使用 watch 模式:自动重新加载配置而无需重启 Traefik。
在生产环境使用 Traefik OSS?
如果你在工作中使用 Traefik,可以考虑为其添加企业级 API 网关能力或获取 Traefik OSS 的商业支持。