【发布时间】:2021-03-09 09:23:45
【问题描述】:
我一直在尝试运行反向代理来管理 iframe 中的 Grafana 图。我在 80 端口上使用 Apache 和 html 页面,在端口 3000 上使用 Grafana 服务器,在 8081 上使用 Nginx 和反向代理。
问题是当我尝试访问 iframe 的内容时,代理给了我 404 错误。为了测试一切,我尝试了本地 Grafana 服务器配置和具有 2 个不同 iframe 的远程服务器配置。连接到本地 Grafana 的那个在上传文件时给了我 Grafana 的一般错误和 404,远程的只有 404。
显然,如果我将每个链接插入到浏览器中,每个链接都可以单独工作,并且不使用代理,它在 iframe 上的工作方式相同。
我不是 Nginx 专家,配置中可能会出现一些错误。作为配置文件,我使用的是 Nginx default.conf 文件,所以我没有接触过 nginx.conf,因为我认为我不需要它。
index.html
<h4>grafana local</h4>
<iframe src="http://localhost:8081/grafana/d-solo/KXusIR0Mk/test?orgId=1&from=1606211757397&to=1606233357397&panelId=2" width="450" height="200" frameborder="0"></iframe>
<h4>grafana remote</h4>
<iframe src="http://localhost:8081/salvo/d-solo/s-kg75yZz/stazione-meteo?orgId=1&panelId=8&from=1606215708391&to=1606237308391" width="450" height="200" frameborder="0"></iframe>
default.conf
server {
listen 8081;
listen [::]:8081;
server_name 127.0.0.1;
location /grafana/ {
#rewrite (grafana\/).* d-solo/KXusIR0Mk/test?orgId=1&from=1606211757397&to=1606233357397&panelId=2 break;
proxy_pass http://localhost:3000/;
}
location /salvo/ {
#rewrite (salvo\/).* d-solo/s-kg75yZz/stazione-meteo?orgId=1&panelId=8&from=1606215708391&to=1606237308391 break;
proxy_pass http://<ip_remoteGrafana>:<port>/;
}
}
PS:远程 Grafana 的 ip 和端口不是我的,所以我删除了它们,但在代码中它们在那里 ;)
access.log
::1 - - [26/Nov/2020:14:17:41 +0100] "GET /salvo/d-solo/s-kg75yZz/stazione-meteo?orgId=1&panelId=8&from=1606215708391&to=1606237308391 HTTP/1.1" 302 29 "http://localhost/grafana/" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.66 Safari/537.36"
::1 - - [26/Nov/2020:14:17:41 +0100] "GET /login HTTP/1.1" 404 197 "http://localhost/grafana/" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.66 Safari/537.36"
错误日志
2020/11/26 14:17:41 [error] 101110#101110: *1 open() "/usr/share/nginx/html/login" failed (2: No such file or directory), client: ::1, server: 127.0.0.1, request: "GET /login HTTP/1.1", host: "localhost:8081", referrer: "http://localhost/grafana/"
这是什么原因造成的?
【问题讨论】:
标签: html nginx iframe reverse-proxy grafana