我正在使用docker-compose
,prometheus
和grafana
创建一个nginx
堆栈。
我想提供基于主机的路由,以便将/
位置重定向到grafana
,将/prometheus
重定向到prometheus
。
但是下面的nginx.conf
会进行perofmrm /
-> grafana
重定向,但不会/prometheus
-> prometheus
重定向(后者转到{ {1}}错误页面)
有什么建议吗?
grafana
({server {
listen 80 default_server;
listen [::]:80 default_server;
root /var/www/html;
server_name _;
location /prometheus {
rewrite ^/prometheus(.*) /$1 break;
proxy_pass http://11.12.12.31:9090;
}
location / {
proxy_pass http://11.12.12.31:3000;
}
和prometheus
是分别暴露给grafana
和9090
的服务)
修改:
3000
答案 0 :(得分:0)
我相信rewrite ^/prometheus(.*) /$1 break;
子句会导致重定向到/
。
nginx
文档建议rewrite
操作实际上针对所请求的url
执行正则表达式,并将其替换为其他内容。
在这种情况下,由于正则表达式/prometheus/
,/
被解析为(.*)
。此表达式的意思是匹配单词“ prometheus”后的 0个或更多字符,并捕获/存储被发现为变量$1
的任何字符。
因此,路径/prometheus
被替换为/
,将您带到Grafana
服务器。
删除rewrite
规则将解决您的问题。
参考: