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/routers | HTTP 路由器列表 |
/api/http/services | HTTP 服务列表 |
/api/http/middlewares | HTTP 中间件列表 |
/api/http/handlers | HTTP 处理器列表 |
/api/tcp/routers | TCP 路由器列表 |
/api/tcp/services | TCP 服务列表 |
/api/udp/routers | UDP 路由器列表 |
/api/udp/services | UDP 服务列表 |
/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 状态
最佳实践
- 生产环境禁用不安全模式:使用
--api.insecure=false - 通过路由器访问仪表盘:使用 BasicAuth 等保护
- 限制 API 网络访问:使用防火墙规则
- 使用 HTTPS:通过 TLS 访问仪表盘
- 监控 API 访问:记录 API 访问日志
在生产环境使用 Traefik OSS?
如果你在工作中使用 Traefik,可以考虑为其添加企业级 API 网关能力或获取 Traefik OSS 的商业支持。