Skip to content

Traefik API 与仪表盘文档

API & Dashboard

Traefik 通过 API 端点公开许多信息,例如你的路由器、服务、中间件等的配置。 仪表盘是显示 Traefik 当前活动路由的中央位置,它从 API 获取数据。

安全

警告

在生产环境中启用 API 和仪表盘不推荐,因为它将暴露所有配置元素,包括敏感数据,这些应该只对管理员开放。

在生产环境中,应该至少通过认证和授权加以保护。

建议不要将 API 端口公开暴露,应限制在内部网络(应用 最小权限原则 到网络)。

配置示例

启用仪表盘

YAML 格式:

yaml
api: {}

TOML 格式:

toml
[api]

CLI 格式:

bash
--api=true

启用不安全模式(仅限开发环境)

yaml
api:
  insecure: true

这将启用 API 监听 8080 端口(api.dashboard: true 时包括仪表盘)。

使用自定义仪表盘路由器

更安全的方式是通过路由器暴露仪表盘:

yaml
api:
  dashboard: true
  insecure: false

http:
  routers:
    dashboard:
      rule: Host(`dashboard.example.com`)
      service: api@internal
      entryPoints: websecure
      middlewares:
        - auth
      tls: {}

API 端点

内部端点

Traefik 提供以下内部端点:

端点描述
/api/http/routersHTTP 路由器列表
/api/http/servicesHTTP 服务列表
/api/http/middlewaresHTTP 中间件列表
/api/http/handlersHTTP 处理器列表
/api/tcp/routersTCP 路由器列表
/api/tcp/servicesTCP 服务列表
/api/udp/routersUDP 路由器列表
/api/udp/servicesUDP 服务列表
/api/entrypoints入口点列表
/api/overview概览
/api/rawdata原始数据
/api/version版本信息
/api/debug调试端点
/dashboard/仪表盘 UI

自定义路径

可以自定义 API 路径:

yaml
api:
  basePath: "/my-api"

这将把 API 暴露在 /my-api 路径下。

仪表盘

仪表盘是 Traefik 提供的 Web UI,使你能够:

  • 查看所有路由器、服务、中间件
  • 查看当前状态
  • 查看最近的访问日志
  • 监控指标

仪表盘特性

  • 路由器列表(按 Provider 分组)
  • 服务列表(带健康状态)
  • 中间件列表
  • 入口点列表
  • 实时连接数
  • 路由详情

适用场景

  • 开发/调试:本地环境使用不安全模式
  • 生产管理:通过安全路由器访问仪表盘
  • 配置审计:使用 API 端点查询配置
  • 健康检查:通过 API 检查 Traefik 状态
  • CI/CD 集成:在部署流水线中查询 Traefik 状态

最佳实践

  1. 生产环境禁用不安全模式:使用 --api.insecure=false
  2. 通过路由器访问仪表盘:使用 BasicAuth 等保护
  3. 限制 API 网络访问:使用防火墙规则
  4. 使用 HTTPS:通过 TLS 访问仪表盘
  5. 监控 API 访问:记录 API 访问日志

在生产环境使用 Traefik OSS?

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

基于 MIT 协议发布