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

使用Nginx反向代理Prometheus时出现错误重定向的问题解决

解决Prometheus反向代理下的重定向路径问题

问题根源确实是Prometheus不知道自身的外部访问前缀,只需在启动时指定--web.external-url参数,就能让它生成带正确前缀的重定向链接。

步骤1:修改docker-compose中的Prometheus配置

更新你的prometheus服务定义,添加command参数指定外部访问路径为/prometheus/:

prometheus:
  image: prom/prometheus
  volumes:
    - ./prometheus/prometheus.yml:/etc/prometheus/prometheus.yml
  # 添加启动参数指定外部URL
  command:
    - '--config.file=/etc/prometheus/prometheus.yml'
    - '--web.external-url=http://localhost/prometheus/'
    # 保持内部路由前缀为根路径,与Nginx代理规则匹配
    - '--web.route-prefix=/'
  ports:
    - "9090:9090"

说明:--web.route-prefix默认值就是/,如果Nginx已经将/prometheus/代理到Prometheus的根路径,这个参数无需修改。

步骤2:优化Nginx代理配置(可选但推荐)

为了让Prometheus正确识别客户端信息,建议在Nginx的location块中补充代理头:

server {
  listen 80;
  location /prometheus/ {
    proxy_pass http://prometheus:9090/;
    # 添加必要的代理头
    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:重启服务验证

执行命令重启docker-compose服务:

docker-compose down && docker-compose up -d

现在访问http://localhost/prometheus/,会正确重定向到http://localhost/prometheus/graph,所有内部链接也会自动带上/prometheus/前缀。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.16 21:53:12