我正在尝试设置运行在docker上的Grafana --构建在nginx反向代理的后面,只要我将auth.anonymous设置为enabled=true,它就能正常工作。
但是,当我禁用匿名签名,并尝试在标题中使用“授权”令牌登录时,当导航到Grafana sub_path时,我会看到下面的错误:
如果您看到这个Grafana无法加载它的应用程序文件
我的ngnix.conf设置是:
server {
listen 80
charset utf-8
location /grafana-dashboard/ {
proxy_pass http://grafana:3000/;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-Host $host;
proxy_set_header X-Forwarded-Server $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_max_temp_file_size 0;
}
}格拉法纳是运行在地堑:3000从码头-构图。
docker-compose.config.yaml内容是:
version: '3.4'
services:
grafana:
container_name: grafana
depends_on:
- db
networks:
- static-network
ports:
- 3000:3000
restart: always
volumes:
- grafana_stor:/var/lib/grafana
environment:
- GF_AUTH_PROXY_ENABLED=true
- GF_SERVER_DOMAIN=10.0.0.3
- GF_SERVER_ROOT_URL=http://10.0.0.3/grafana-dashboard/
user: "472"
volumes:
grafana_stor: {}
networks:
static-network:
ipam:
config:
- subnet: 172.20.0.0/16在访问10.0.0.3/ Grafana -仪表板/i之前,我使用Grafana、API_KEY /api/auth/键生成HTTP_API,然后在客户机上传递"Authorization: header“头上返回的令牌。
为了澄清,grafana仪表板的目标是显示在我的webapp中的iframe上,但是由于我需要传递授权头,我向nginx提供服务的/grafana-仪表板/发出一个请求,然后将'blob‘响应放在iframe上。
整个想法是有“单一登录”的地堑和我的网络应用程序。所以刚刚登录到webapp的用户也不需要登录到grafana。但是,如果grafana被直接使用(而不是从iframe),则需要grafana登录屏幕或nginx简单身份验证。
发布于 2019-02-03 18:36:40
您的问题是: 1. API键用于API访问,但是您试图用API键2加载UI (不是API,它在/api路径上可用)。
解决方案:
发布于 2019-07-10 08:43:56
正如上面提到的,您没有从nginx代理中传递用户身份信息。我使用了基本身份验证,并将下面的行添加到location块中。
proxy_set_header Authorization "Basic <base64 encoded username:password>";这让它起作用了。最好是在Grafana中添加一个新的只读用户,而不是管理用户。为了获得更多的安全性,您可能还想用下面的grafana.ini来更新它。
session_life_time = 900
allow_sign_up = false
allow_org_create = false发布于 2020-05-25 20:25:14
我能够通过将Grafana HTTP中的API键附加为cookie来使其工作。然后,在我的nginx.conf中,我有:
location /grafana-dashboard/ {
# The important line:
proxy_set_header Authorization "Bearer $cookie_grafana_key";
proxy_pass http://grafana:3000/;
}这样,您就可以正常使用iframe,而不必担心设置标头。
另外,我不确定这是否是nginx配置问题,但当我在AJAX请求中添加授权头和API密钥时--而不是将密钥作为cookie传递--我也得到了原始错误。我不知道上面是什么。
https://stackoverflow.com/questions/54503917
复制相似问题