Skip to content

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 等

最佳实践

  1. 使用 directory 模式:将配置拆分为多个文件(如 tls.yamlmiddlewares.yaml),便于管理。
  2. 敏感信息使用环境变量或 secret 引用:不要将明文密码放在文件中。
  3. 结合 Helm 或 Kustomize:在 Kubernetes 环境中,可以使用这些工具生成动态配置。
  4. 使用 watch 模式:自动重新加载配置而无需重启 Traefik。

在生产环境使用 Traefik OSS?

如果你在工作中使用 Traefik,可以考虑为其添加企业级 API 网关能力或获取 Traefik OSS 的商业支持。

基于 MIT 协议发布