You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Traefik Dashboard显示空白 /api/overview请求返回404排查

问题根因

你的判断完全准确,问题出在路由规则配置缺失:

  • 现有Dashboard路由仅匹配/dashboard路径前缀,但Traefik Dashboard页面加载后,会主动请求根路径下的/api/overview等内置接口拉取运行数据,这部分请求没有匹配到Dashboard的路由规则。
  • 业务服务的路由规则配置为全匹配Host(my.site.com),没有路径限制,所有未被其他路由命中的同域名请求都会被转发到Django服务,Django不存在Traefik的内置接口路径,直接返回404,最终出现Dashboard页面框架能正常打开、但所有数据字段空白的现象。
  • 配置中traefik.http.routers.api.entrypoints=dashboard为无效配置,你没有定义名为dashboard的入口点,该行不会产生任何作用。
修复方案

两种方案可按需选择,优先推荐第一种,配置最简单且完全无路径冲突:

方案1:为Dashboard分配独立子域名(推荐)

通过独立子域名访问Dashboard,和主站业务路径完全隔离,不会和现有/api业务接口产生任何冲突:

  1. 为域名添加一条A记录,例如traefik.my.site.com,解析到服务器公网IP。
  2. 删除traefik服务labels段中的无效entrypoint配置,替换Dashboard路由规则为子域名匹配,修改后traefik服务的labels段如下:
labels:
  - "traefik.enable=true"
  - "traefik.http.routers.dashboard.rule=Host(`traefik.my.site.com`)"
  - "traefik.http.routers.dashboard.tls=true"
  - "traefik.http.routers.dashboard.tls.certresolver=letsencrypt"
  - "traefik.http.routers.dashboard.service=api@internal"
  - "traefik.http.routers.dashboard.middlewares=auth"
  - "traefik.http.middlewares.auth.basicauth.users=test:$$apr1$$H6uskkkW$$IgXLP6ewTrSuBkTrqE8wj/"
  1. 重启traefik服务,访问https://traefik.my.site.com/dashboard/(注意末尾斜杠不可省略)即可正常加载所有Dashboard数据,主站业务接口、后台路径完全不受影响。

方案2:保留主站路径访问模式

如果需要继续在主域名下通过路径访问Dashboard,需要统一Dashboard的访问前缀,避免和业务/api路径冲突:

  1. 在traefik服务的command启动参数中添加Dashboard资源路径配置:
command:
  - "--api=true"
  - "--api.dashboard=true"
  - "--providers.docker=true"
  - "--api.dashboard.assetpath=/traefik"
  1. 修改traefik服务的labels段,添加前缀剥离中间件,同时给Dashboard路由设置更高优先级,确保相关请求优先匹配内置服务:
labels:
  - "traefik.enable=true"
  - "traefik.http.routers.dashboard.rule=Host(`my.site.com`) && PathPrefix(`/traefik`)"
  - "traefik.http.routers.dashboard.priority=100"
  - "traefik.http.routers.dashboard.tls=true"
  - "traefik.http.routers.dashboard.tls.certresolver=letsencrypt"
  - "traefik.http.routers.dashboard.service=api@internal"
  - "traefik.http.routers.dashboard.middlewares=auth,strip-traefik-prefix"
  - "traefik.http.middlewares.strip-traefik-prefix.stripprefix.prefixes=/traefik"
  - "traefik.http.middlewares.auth.basicauth.users=test:$$apr1$$H6uskkkW$$IgXLP6ewTrSuBkTrqE8wj/"
  1. 重启traefik服务后,访问https://my.site.com/traefik/dashboard/即可正常使用,Dashboard发起的所有API请求都会走/traefik/api前缀,不会转发到业务服务。

内容的提问来源于stack exchange,提问作者Dmitriy Lunev

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.29 23:39:14