繁体   English   中英

Traefik dasboard 不适用于子域

[英]Traefik dasboard not working with subdomain

我正在尝试在子域下设置 Traefik 仪表板,但我收到 404 页面未找到。 但是,我可以毫无问题地访问 api。 下面是我创建的 docker-compose.yml。

version: '3.7'
services:
  traefik:
    image: traefik:v2.9.6
    container_name: traefik
    hostname: traefik
    restart: always
    ports:
      - 80:80
      - 8080:8080
    command:
      - --api.insecure=true
      - --api.dashboard=true
      - --api.debug=true
      - --log.level=DEBUG
      - --providers.docker=true
      - --providers.docker.exposedbydefault=false
      - --providers.docker.network=traefikweb
      - --entrypoints.web.address=:80
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock:ro
    networks:
      - traefikweb
    labels:
      - traefik.enable=true
      - traefik.http.routers.dashboard.rule=Host(`traefik.example.com`) && PathPrefix(`/dashboard`)
      - traefik.http.routers.dashboard.service=dashboard@internal
      - traefik.http.routers.dashboard.entrypoints=web
      - traefik.http.routers.api.rule=Host(`traefik.example.com`) && PathPrefix(`/api`)
      - traefik.http.routers.api.service=api@internal
      - traefik.http.routers.api.entrypoints=web
networks:
  traefikweb:
    external: true

我需要指导我做错了什么以及为什么 traefik.example.com/api/rawdata 有效而 traefik.example.com/dashboard 无效。 谢谢

我基于 larsks 答案的解决方案:

version: '3.7'
services:
  traefik:
    image: traefik:v2.9.6
    container_name: traefik
    hostname: traefik
    restart: always
    ports:
      - 80:80
    command:
      - --api.insecure=true
      - --api.dashboard=true
      - --api.debug=true
      - --log.level=DEBUG
      - --providers.docker=true
      - --providers.docker.exposedbydefault=false
      - --providers.docker.network=traefikweb
      - --entryPoints.web.address=:80
      - --accessLog.filePath=/dev/stderr
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock:ro
    networks:
      - traefikweb
    labels:
      - traefik.enable=true

      - traefik.http.routers.dashboard.rule=Host(`traefik.example.com`)
      - traefik.http.routers.dashboard.service=dashboard@internal
      - traefik.http.routers.dashboard.entrypoints=web

      - traefik.http.routers.api.rule=Host(`traefik.example.com`) && PathPrefix(`/api`)
      - traefik.http.routers.api.service=api@internal
      - traefik.http.routers.api.entrypoints=web

networks:
  traefikweb:
    external: true

用法:

http://traefik.example.com -> 将带您到仪表板

http://traefik.example.com/api/rawdata -> 将带你到 api

我还删除了端口转发 8080:8080。 所以访问 api 的唯一方法是通过 url http://traefik.example.com/api/..

这是我迈向仪表板和 api 路由的第一步。 下一步是保护它。

我一直在研究这个,下面的配置对我有用。 这会在 http://traefik.internal/dashboard 公开仪表板,在http://traefik.internal/dashboard http://traefik.internal/api API。


version: '3.7'
services:
  traefik:
    image: traefik:v2.9.6
    container_name: traefik
    hostname: traefik
    restart: always
    ports:
      - 80:80
      - 8080:8080
    command:
      - --api.insecure=true
      - --api.dashboard=true
      - --api.debug=true
      - --log.level=INFO
      - --providers.docker=true
      - --providers.docker.exposedbydefault=false
      - --providers.docker.network=traefikweb
      - --entrypoints.web.address=:80
      - --accessLog.filePath=/dev/stderr
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock:ro
    networks:
      - traefikweb
    labels:
      - traefik.enable=true

      - traefik.http.routers.api.rule=Host(`traefik.internal`) && PathPrefix(`/api`)
      - traefik.http.routers.api.service=api@internal
      - traefik.http.routers.api.entrypoints=web

      - traefik.http.routers.dashboard.rule=Host(`traefik.internal`) && PathPrefix(`/dashboard`)
      - traefik.http.routers.dashboard.service=dashboard@internal
      - traefik.http.routers.dashboard.entrypoints=web

      # configure stripprefix rule for the dashboard
      - traefik.http.routers.dashboard.middlewares=dashboard-stripprefix
      - traefik.http.middlewares.dashboard-stripprefix.stripprefix.prefixes=/dashboard
networks:
  traefikweb:
    external: true

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM