场景:
平台要集成grafana,想绕过用户登录,目前知道有2个方法。
前提:先修改配置defaults.ini/grafana.ini允许嵌入
工具:
nginx
思路: 通过nginx转发的方式在转发过程中添加Authorization请求头
allow_embedding = true
使用grafana颁发一个API Key。
完整nginx配置参考
events {
worker_connections 1024;
}
http {
include mime.types;
default_type application/octet-stream;
sendfile on;
keepalive_timeout 65;
upstream archery-dev {
server 127.0.0.1:3000;
}
server {
listen 80;
server_name localhost;
# underscores_in_headers on;
location / {
proxy_buffer_size 128k;
proxy_buffers 32 128k;
proxy_busy_buffers_size 128k;
add_header Access-Control-Allow-Origin '*';
add_header Access-Control-Allow-Methods '*';
add_header Access-Control-Allow-Credentials true;
#add_header Access-Control-Allow-Headers Authorization;
set $auth 'Bearer eyJrIjoiU044cEI0T2cyNjdKOUhyZW81TW9DZFE2VUhBZUE3MlEiLCJuIjoibW9uaXRvcl9jcHUiLCJpZCI6MX0=';
proxy_set_header Host $host;
proxy_set_header Authorization $auth;
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;
proxy_pass http://archery-dev/;
}
}
}
之后启动nginx
docker run -d --name grafana-nginx --restart=always --privileged=true -p 38081:80 -v /home/xxx/grafanaNginx/conf/nginx.conf:/etc/nginx/nginx.conf -v /home/xxx/grafanaNginx/log:/var/log/nginx nginx
访问分享连接
http://127.0.0.1:38081/d/Bkl9bBYik/1-zhu-ji-ji-chu-jian-kong-cpu-nei-cun-ci-pan-wang-luo?orgId=1&from=1643009208013&to=1643010108013
部分参考:https://blog.csdn.net/qq_16240085/article/details/120996841 避坑详解(修正补全nginx配置方面)