为什么我的 Grafana、Docker 和 Traefik 配置没有将我的请求路由到 Grafana 的首页?

Why do my configurations of Grafana, Docker and Traefik not route my requests to Grafana's frontpage?

我是 traefik 的新手,目前正在尝试将我的容器设置为由 traefik 反向代理。使用 traefik.frontend.rule=Host:grafana01.mydomain.com 将请求路由到 grafana01.mydomain.com 时一切正常,但由于我们网络中的基础设施问题,我宁愿使用 traefik.frontend.rule=Path:/grafana01/重定向到 mydomain.com/grafana01。但是由于某种原因它不起作用。 我的 traefik.toml 文件以及我的两个 docker-compose.yml 文件分别用于 traefik 和 grafana:

#Traefik Global Configuration
debug = false
checkNewVersion = true
logLevel = "ERROR"

#Define the EntryPoint for HTTP and HTTPS
defaultEntryPoints = ["https","http"]

#Enable Traefik Dashboard on port 8080
[web]
address = ":8080"

#Define the HTTP port 80 and
#HTTPS port 443 EntryPoint
#Enable automatically redirect HTTP to HTTPS
[entryPoints]
[entryPoints.http]
address = ":80"
[entryPoints.http.redirect]
entryPoint = "https"
[entryPoints.https]
address = ":443"
[entryPoints.https.tls]

#Enable retry sending a request if the network error
[retry]

#Define Docker Backend Configuration
[docker]
endpoint = "unix:///var/run/docker.sock"
domain = "mydomain.com"
watch = true

#Letsencrypt Registration
#Define the Letsencrypt ACME HTTP challenge
[acme]
email = "some_email"
storage = "acme.json"
entryPoint = "https"
OnHostRule = true
  [acme.httpChallenge]
  entryPoint = "http"
version: '3'

services:
  traefik:
    image: traefik:latest
    command: --docker --docker.mydomain.com
    ports:
      - 80:80
      - 443:443
    networks:
      - traefik
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock
      - ./traefik.toml:/traefik.toml
      - ./acme.json:/acme.json
    labels:
      - "traefik.frontend.rule=Host:mydomain.com"
      - "traefik.port=8080"
      - "traefik.backend=traefik"
    container_name: traefik
    restart: always

networks:
  traefik:
    external: true
version: '3'

services:
  grafana01:
    image: grafana/grafana
    labels:
      - traefik.port=3000
      - traefik.backend=grafana01
      - traefik.frontend.rule=Path:/grafana01/
      - traefik.docker.network=traefik
    networks:
      - traefik
    environment:
      - GF_SECURITY_ADMIN_PASSWORD=secret
    volumes:
      - /srv/docker/grafana01/data:/var/lib/grafana
    container_name: grafana01
    restart: always

  grafana02:
    image: grafana/grafana
    labels:
      - traefik:port=3001
      - traefik.backend=grafana02
      - traefik.frontend.rule=Path:/grafana02/
      - traefik.docker.network=traefik
      - traefik.enable=true
    networks:
      - traefik
    environment:
      - GF_SECURITY_ADMIN_PASSWORD=secret
    volumes:
      - /srv/docker/grafana02/data:/var/lib/grafana
    container_name: grafana02
    restart: always

networks:
  traefik:
    external: true

如有任何帮助,我将不胜感激!

traefik.frontend.rule=Path:/grafana01/ 更改为 traefik.frontend.rule=PathPrefixStrip:/grafana01 以及添加 GF_SERVER_ROOT_URL=%(protocol)s://%(domain)s/grafana01 对我有用。