使用Traefik在郊区反向代理Grafana; 404回复

时间:2018-04-12 01:55:24

标签: grafana traefik

我已尽力遵循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 确实接受了这个。这是它在仪表板上显示的内容:

enter image description here

但是,当我实际请求https://metrics.mydomain/grafana时,我得到的是404和错误文档,然后是自定义错误文档请求的资源的后续404:

enter image description here

最后,也是最令人困惑的是,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

1 个答案:

答案 0 :(得分:4)

我可以使用PathPrefixStrip代替PathPrefix

来解决此问题