我已尽力遵循Grafana和Traefik的文档,通过Traefik将传入的请求转发到https://metrics.mydomain/grafana
到作为容器运行的Grafana实例,但我收到Grafana的404回复,我可以&# 39;找出原因。
以下是我在阅读docs并尝试使用docker-compose.yml文件中的各种内容后所做的事情:
version: '3'
services:
traefik:
image: traefik
restart: always
ports:
- 80:80
- 443:443
- 8080:8080
volumes:
- /var/run/docker.sock:/var/run/docker.sock
- /home/ben/traefik.toml:/etc/traefik/traefik.toml
- /etc/letsencrypt/live/mydomain/fullchain.pem:/mydomain_fullchain.pem
- /etc/letsencrypt/live/mydomain/privkey.pem:/mydomain_privkey.pem
grafana:
image: grafana/grafana
restart: always
ports:
- 3000:3000
volumes:
- /srv/grafana:/var/lib/grafana
environment:
- GF_SERVER_ROOT_URL=%(protocol)s://%(domain)s:%(http_port)s/grafana
labels:
- traefik.enable=true
- 'traefik.frontend.rule=Host:metrics.mydomain;PathPrefix:/grafana;'
- 'traefik.frontend.redirect.entryPoint=https'
Traefik 确实接受了这个。这是它在仪表板上显示的内容:
但是,当我实际请求https://metrics.mydomain/grafana
时,我得到的是404和错误文档,然后是自定义错误文档请求的资源的后续404:
最后,也是最令人困惑的是,Grafana本身收到的请求似乎是正确的,但仍会导致404s:
method=GET path=/grafana status=404 remote_addr=192.168.0.1
method=GET path=/grafana/public/build/grafana.dark.css status=404 remote_addr=192.168.0.1
...etc
我不明白为什么这么挑剔,并且(对我而言)没有任何证据表明实际问题是什么。
P.S。 - 我确实对看起来相关的Grafana问题发表评论。 https://github.com/grafana/grafana/issues/2066#issuecomment-380647174
答案 0 :(得分:4)
我可以使用PathPrefixStrip
代替PathPrefix