使用 Traefik 在 suburl 反向代理 Grafana; 404 回复
Using Traefik to reverse proxy Grafana at a suburl; 404 responses
我已尽力按照 Grafana 和 Traefik 的文档将通过 Traefik 向 https://metrics.mydomain/grafana
发送的传入请求反向代理到作为容器的 Grafana 实例 运行,但我收到 404 响应来自 Grafana,我不知道为什么。
这是我在阅读文档并在 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 本身 收到的请求 似乎是正确的,但仍然导致 404:
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
我可以使用 PathPrefixStrip
而不是 PathPrefix
来解决这个问题
我在最新的图片中写下这个问题,这个问题已经解决了。我在使用 grafana/grafana:5.1.0.
时遇到了同样的问题
我的工作配置供参考:
version: '2'
services:
grafana:
image: grafana/grafana
environment:
- GF_SERVER_ROOT_URL=%(protocol)s://%(domain)s:%(http_port)s/grafana
- GF_SERVER_DOMAIN=devserver1.mydomain
- GF_SERVER_SERVE_FROM_SUB_PATH=true
labels:
- "traefik.http.routers.grafana.rule=Host(`devserver1.mydomain`) && PathPrefix(`/grafana`)"
- "traefik.http.services.grafana.loadbalancer.server.port=3000"
networks:
- traefik_default
volumes:
- grafana-storage:/var/lib/grafana
networks:
traefik_default:
external: true
volumes:
grafana-storage:
Grafana 关于 运行 反向代理背后的文档 Run Grafana behind a reverse proxy. An explanation on how to Configure with environment variables。
我已尽力按照 Grafana 和 Traefik 的文档将通过 Traefik 向 https://metrics.mydomain/grafana
发送的传入请求反向代理到作为容器的 Grafana 实例 运行,但我收到 404 响应来自 Grafana,我不知道为什么。
这是我在阅读文档并在 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 本身 收到的请求 似乎是正确的,但仍然导致 404:
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
我可以使用 PathPrefixStrip
而不是 PathPrefix
我在最新的图片中写下这个问题,这个问题已经解决了。我在使用 grafana/grafana:5.1.0.
时遇到了同样的问题我的工作配置供参考:
version: '2'
services:
grafana:
image: grafana/grafana
environment:
- GF_SERVER_ROOT_URL=%(protocol)s://%(domain)s:%(http_port)s/grafana
- GF_SERVER_DOMAIN=devserver1.mydomain
- GF_SERVER_SERVE_FROM_SUB_PATH=true
labels:
- "traefik.http.routers.grafana.rule=Host(`devserver1.mydomain`) && PathPrefix(`/grafana`)"
- "traefik.http.services.grafana.loadbalancer.server.port=3000"
networks:
- traefik_default
volumes:
- grafana-storage:/var/lib/grafana
networks:
traefik_default:
external: true
volumes:
grafana-storage:
Grafana 关于 运行 反向代理背后的文档 Run Grafana behind a reverse proxy. An explanation on how to Configure with environment variables。