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

Docker Swarm部署环境下Traefik Dashboard访问始终返回404问题求助

问题根因
  • 你在Traefik启动参数中配置了--providers.docker.exposedByDefault=false,即默认不暴露任何Docker服务给Traefik代理。但你给reverse-proxy服务配置的dashboard路由相关标签,缺少traefik.enable=true配置项,导致Traefik没有加载对应的dashboard路由规则,访问时自然返回404。
修复方案
  1. 修改traefik.yml文件,在reverse-proxy服务的deploy.labels段新增traefik.enable=true配置,修改后的labels部分如下:
deploy:
  labels:
    - "traefik.enable=true" # 新增这行
    # 因Swarm API不支持自动获取端口需手动指定
    - "traefik.http.services.reverse-proxy.loadbalancer.server.port=80"
    # Dashboard配置
    - "traefik.http.routers.dashboard.rule=Host(`gateway.localhost`) && (PathPrefix(`/api`) || PathPrefix(`/dashboard`))"
    - "traefik.http.routers.dashboard.service=api@internal"
    - "traefik.http.routers.dashboard.entrypoints=web"
    - "traefik.http.routers.dashboard.middlewares=auth"
    - "traefik.http.middlewares.auth.basicauth.users=test:$$apr1$$H6uskkkW$$IgXLP6ewTrSuBkTrqE8wj/,test2:$$apr1$$d9hr9HBB$$4HxwgUir3HP4EsggP/QNo0"
  1. 重新执行部署命令更新栈:
    docker stack deploy -c traefik.yml traefik
  2. 等待配置生效后,访问http://gateway.localhost/dashboard/,在弹出的基础认证框中输入配置的账号密码(账号test密码test、账号test2密码test2),即可正常访问Dashboard。
补充说明

http://gateway.localhost没有匹配的路由规则,返回404属于正常现象,只有路径前缀为/api或/dashboard的请求才会被路由到Dashboard服务。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 18:36:08