Grafana在ingress-nginx反向代理下的root_url配置问题求助
解决Grafana子路径部署加载失败问题
1. 优先修正拼写错误
你的Grafana环境变量里存在明显拼写错误:examlpe.com 需改为 example.com,错误域名会导致Grafana生成的静态资源路径指向无效地址,直接引发加载失败。修正后的配置如下:
ENV GF_SERVER_DOMAIN=example.com ENV GF_SERVER_ROOT_URL=https://example.com/monitor/ ENV GF_SERVER_SERVE_FROM_SUB_PATH=true
2. 确认Ingress配置有效性
当前Ingress的path: "/monitor"和pathType: Prefix配置是正确的,ingress-nginx会自动将所有以/monitor开头的请求转发给Grafana服务。无需添加rewrite-target规则,因为GF_SERVER_SERVE_FROM_SUB_PATH=true已让Grafana具备子路径请求处理能力。
3. 重启Grafana Pod使配置生效
修改环境变量后,必须重启Grafana Pod才能加载新配置:
kubectl rollout restart deployment <你的Grafana部署名称>
4. 排查浏览器资源加载日志
打开浏览器开发者工具(F12),切换到Network标签,刷新页面后查看:
- 哪些静态资源(CSS/JS/字体)返回404或加载失败
- 失败请求的URL是否仍包含错误域名或路径
这一步能直接定位问题根源是路径匹配还是域名配置错误。
5. 集群内部验证请求转发
在集群内任意Pod中执行curl命令,检查Grafana返回的HTML资源路径是否正确:
curl -v https://example.com/monitor --resolve example.com:443:<Ingress控制器IP>
查看返回的HTML中,<link>或<script>标签的href属性是否为https://example.com/monitor/xxx格式。
内容的提问来源于stack exchange,提问作者A Little Dinosaur
相关产品推荐
相关产品推荐

