You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Nginx反向代理Grafana时静态资源加载失败求助

解决Nginx反向代理后Grafana静态资源路径错误的问题

我之前也碰到过这个一模一样的坑!从你的Nginx日志能看得出来,问题核心是Grafana生成的静态资源路径没有带上/grafana子路径,导致Nginx去自己的默认静态目录(/usr/share/nginx/html)里找这些资源,自然找不到。咱们一步步来修复:

1. 修正Grafana的grafana.ini配置

你需要确保Grafana知道自己运行在/grafana子路径下,调整以下两个关键配置:

# 保持域名配置不变
domain = PUBLIC_IP
# 确保root_url末尾带斜杠,明确子路径
root_url = https://PUBLIC_IP/grafana/
# 开启这个选项,让Grafana自动给所有静态资源加上子路径前缀
serve_from_sub_path = true

注意:serve_from_sub_path这个配置默认是关闭的,这是导致静态资源路径缺失前缀的关键原因!

2. 优化Nginx反向代理配置

虽然你的基础配置没问题,但加上必要的代理头能让Grafana更准确地识别请求环境,避免后续可能的其他问题。更新后的nginx.conf对应块如下:

server {
    listen 443 ssl;
    server_name PUBLIC_IP;
    ssl_certificate /etc/nginx/cert.crt;
    ssl_certificate_key /etc/nginx/cert.key;
    ssl on;
    ssl_session_cache shared:SSL:1m;
    ssl_session_timeout 10m;
    ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
    ssl_ciphers HIGH:!aNULL:!MD5;
    ssl_prefer_server_ciphers on;

    location /grafana/ {
        proxy_pass http://IP_WHERE_LIVES_GRAFANA:30000/;
        # 添加这些代理头,让Grafana正确识别请求信息
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
    }
}

3. 重启服务验证

  • 在Kubernetes集群中重启Grafana的Pod,让新的配置生效
  • 在Nginx所在虚拟机执行systemctl restart nginx(如果是容器部署就重启Nginx容器)

之后再访问https://PUBLIC_IP/grafana/,你会发现静态资源都能正常加载,不会再出现{{alert.title}}的错误了。

内容的提问来源于stack exchange,提问作者Oles Rid

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.28 06:29:22