我正在使用Nginx来提供石墨和grafana(它们都在同一台服务器上运行 - 而不是我的桌面) . 我可以通过Nginx访问石墨 . 但是,grafana似乎无法连接到石墨(错误:Graphite HTTP请求错误) . 我已经复制下面的nginx配置为grafana - 任何有关修复此问题的想法将不胜感激 . 浏览器中失败的请求URL是这样的(如果我直接在浏览器中访问它,则可访问):
**http://xxx.xxx.xxx.xxx:8080/render**
Nginx default
server {
listen 85; ##listen [::]:85; #ipv6only=on;
server_name grafana;
root /home/xxxx/grafana-1.5.3/;
index index.html index.htm;
##logging per server
access_log /var/log/nginx/grafana/access.log;
error_log /var/log/nginx/grafana/error.log;
location / {
## root /home/xxxx/grafana-1.5.3/;
}
}
config.js URL for graphite (in grafana)
graphiteUrl: "http://xxx.xxx.xxx.xxx:8080"
Edit Graphite不需要身份验证来访问grafana . 另外,我使用的是grafana v1.5.3
7 回答
尝试通过nginx(相同的原点)访问石墨 . 只需添加新位置即可
然后在你的grafana配置文件中更改石墨网址
尝试运行浏览器whith“disable-web-security”标志 .
我能够通过将请求更改为GET而不是POST来解决此问题 . 有关更多信息,请参阅此问题 . https://github.com/grafana/grafana/issues/345
我的数据源最终看起来像
我还没弄明白如何让我的石墨安装接受POST请求 . 即使直接查询,我也可以确定CORS不是问题 .
我认为您需要在 graphite 的nginx配置中启用CORS . 请查看:http://enable-cors.org/server_nginx.html . 这是我使用此链接进行的配置:
(就我而言,grafana在端口
8100
上暴露,而石墨在端口8090
上;相应地适应(8100
- >85
,8090
- >8080
)) .请注意,对你来说有趣的部分是
# CORS
以下,django的东西可能对你没用 .为了确保's a CORS issue, you want to inspect HTTP headers sent by your browser; if there'是
Origin
标头,这意味着您必须使用CORS .如果你不能编辑NGinx配置,另一件事就是使用CORS代理 . 我使用NPM包corsproxy来解决石墨CORS问题 .
安装corsproxy包:
app.js:
运行代理:
这是我用来托管grafana和代理石墨和elasticsearch的nginx配置文件 .
我不确定OP是否已经解决了他们的问题,但这对我有用:
我把石墨和grafana放在同一个地方 . 石墨存在于/ grafana中的根和grafana /
这解决了跨站点脚本问题,而无需设置CORS:石墨和grafana在同一站点上 .
nginx站点配置:
为了访问grafana,我因此去:
(192.168.1.1是我服务器的IP地址)