Nginx代理Grafana,鉴权访问以及Grafan免登录访问

✨概述

在使用grafana做页面嵌入的场景中,通常需要grafana与前端在同域下,方便鉴权、解决跨域。

Nginx代理Grafana后,就不能使用Grafana中默认配置的端口和路径进行访问,必须通过Nginx访问Grafana
如果需要做Iframe嵌入自研系统时,存在鉴权问题,在同域名下可以使用IFrame添加Header形式进行鉴权。

在非同域名情况下,可以使用在Nginx中统一添加Header(存在一定的风险),由于鉴权都在Nginx中配置,所以只要拿到url就能直接访问。通过这种方式可以实现Grafana免登录访问,如果有这种需求可以采用这种方案。

🎯Nginx代理Grafana

📄Grafana配置文件修改

修改配置文件:
grafana/conf/default.iniroot_url后边添加路径/grafana(该路径可自定义,和nginx配置中保持一致即可)

# 后缀与nginx代理后缀保持一致
root_url = %(protocol)s://%(domain)s:%(http_port)s/grafana
# 允许跨域
allowed_origins = *
# 允许iframe嵌入
allow_embedding = true

🔊注意:

如果配置文件中修改了端口(http_port)【默认为3000】,那么以下对应的nginx中的端口也要进行修改。

🧾nginx配置文件修改

Nginx代理grafana

配置nginx代理grafana,配置后只能通过nginx访问grafanagrafana单独访问就失效了。

# 代理Grafana
server{listen 12300;server_name 10.0.204.66;charset utf-8;location /grafana {root   html;index  index.html index.htm;add_header 'Access-Control-Allow-Origin' '*';add_header Access-Control-Allow-Methods GET,POST,OPTIONS,DELETE;add_header 'Access-Control-Allow-Headers' 'userId,DNT,X-CustomHeader,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type';proxy_pass http://127.0.0.1:3000;rewrite ^/grafana/(.*) /$1 break;proxy_set_header X-Real-IP $remote_addr;proxy_set_header   Host $host;# websocket处理proxy_http_version 1.1;proxy_set_header Upgrade $http_upgrade;proxy_set_header Connection "upgrade";# 处理grafana重定向问题, proxy_redict grafana默认路径 nginx代理路径proxy_redirect http://localhost:3000 http://10.0.204.66:12300;}
}

🔊注意:

  1. grafana中有websocket使用,这里需要配置websocket的处理。
  2. proxy_http_version指定使用HTTP/1.1协议
  3. proxy_set_header Upgrade以及Connection表示使用Upgrade头协议,将HTTP协议升级为WebSocket协议
  4. grafana中有重定向的场景(例如切换组织机构时),需要额外配置重定向
  5. proxy_redirect替换重定向的ip和端口。
  6. nginx配置说明
  7. rewrite ^/grafana/(.*) /$1 break;:匹配/grafana/下的所有,替换为正则中的第一个(正则表达式组的概念),break本条规则匹配完成后即终止,不在匹配后面的任何规则

Grafana免登录

通过在Nginx中实现鉴权操作,从而实现免登录功能。

  1. grafana中配置apikey(以10.0.1版本为例)

image.png
image.png
image.png
image.png
image.png

  1. nginx转发配置

直接在nginx中鉴权,配置后url可直接访问,可以与主应用服务放在同一个server下。启动Authorization中的token参照第一步进行即可。

    location /grafana {root html;index index.html index.htm;add_header Access-Control-Allow-Methods GET,POST,OPTIONS,DELETE;rewrite ^/grafana/(.*) /$1 break;proxy_pass http://127.0.0.1:23000;proxy_buffering on;proxy_buffer_size 4k;proxy_buffers 8 1M;proxy_busy_buffers_size 2M;proxy_max_temp_file_size 0;proxy_connect_timeout 600s;proxy_read_timeout 600s;proxy_send_timeout 600s;proxy_set_header Host $host;proxy_set_header X-Real-IP $remote_addr;proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;# 授权,需要从grafana中配置获取proxy_set_header Authorization "Bearer glsa_wX9BVN8AQmB70Z4Te1A30PwEs3Vp6jY7_b5309935";proxy_http_version 1.1;proxy_set_header Upgrade $http_upgrade;proxy_set_header Connection "upgrade";}

⛳Grafana主题与组织

可以直接在url后添加参数theme=dark 修改主题颜色,例如:
取值:
dark 深色
light 浅色

🧱数据迁移

默认情况下,grafana数据存储在文件中,如果有多个环境配置问题,只要Grafana版本相同可以直接迁移数据文件。
文件地址/grafana-10.0.1/data/grafana.db

📖参考文档

  1. nginx代理后打开grafana页面If you‘re seeing this Grafana has failed to load its application files_nginx 代理grafana_privateobject的博客-CSDN博客
  2. 灵活应用Nginx Map:实战经验与实用方法

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/29380.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Python、Selenium实现问卷星自动填写(内含适配个人问卷的方法)

🧑‍💻作者名称:DaenCode 🎤作者简介:啥技术都喜欢捣鼓捣鼓,喜欢分享技术、经验、生活。 😎人生感悟:尝尽人生百味,方知世间冷暖。 📖所属专栏:Py…

电子锁语音芯片方案,低功耗声音提示ic,WT588F02B-8S

随着科技的不断发展,电子锁已成为现代社会中,安全性和便利性并存的必备设备。如何为电子锁行业增添智能化、人性化的功能已成为行业内的热门话题。 在这个迅速发展的市场中,深圳唯创知音推出了一款语音交互方案——WT588F02B-8S 低功耗声音提…

C# 细说async/await的用法

目录 一,引言 二,实例演示 2.1 多线程同步执行下载任务,任务完成后通知 2.2 异步执行下载任务,任务完成后通知 三,async/await的用法 3.1 跨线程修改UI控件 3.2 异步获取数据 一,引言 首先先来区分…

基于html2canvas和jspdf将document DOM节点转换为图片生成PDF文件,并下载到本地

这里要用到html2canvas将document DOM节点转换为图片,并下载到本地_你挚爱的强哥的博客-CSDN博客前端用原生js编辑文件内容→创建生成文件(格式可以自定义)→下载文件_你挚爱的强哥的博客-CSDN博客。会自动创建一个html文件。https://blog.csdn.net/qq_37860634/art…

解决 Qt 下载安装太慢的办法

Qt 现在新的版本都是采用在线安装,那速度实在是.... 找了一些方法,原理就是用 Fiddler 来代理,然后替换掉 url 成清华的镜像地址,这样就相当于直接从清华安装了,嘎嘎快 打开 Fiddler, 打开 Qt 安装程序,在…

安达发|某大厂使用APS计划排程真实成功案例

在很多群里、朋友圈、公众号上可以看到,很多精益咨询老师认为,不仅ERP不啥用,APS更是无聊之举,而且肯定是用不好的。但,事实上可能还真不是这样的。 一个深圳的客户,用了APS以后,不仅装配的齐套…

图论 并查集 模拟 位运算—题841、127、684、685、657、31、463、1356 C++实现与有向图 无向图 并查集总结

文章目录 841.钥匙和房间DFSBFS 127. 单词接龙684.冗余连接685.冗余连接II657. 机器人能否返回原点31.下一个排列463. 岛屿的周长解法1解法2 1356. 根据数字二进制下 1 的数目排序解法1解法2 注意点 图论:题841、127 并查集:题684、685 模拟:…

一百三十、海豚调度器——用DolphinScheduler定时调度HiveSQL任务

一、目标 用海豚调度器对Hive数仓各层数据库的SQL任务进行定时调度。比如,DWD层脱敏清洗表的动态插入数据、DWS层指标表的动态插入数据 二、工具版本 1、海豚调度器:apache-dolphinscheduler-2.0.5-bin.tar.gz 2、Hive:apache-hive-3.1.2…

完整的电商平台后端API开发总结

对于开发一个Web项目来说,无论是电商还是其他品类的项目,注册与登录模块都是必不可少的;注册登录功能也是我们在日常生活中最长接触的,对于这个业务场景的需求与逻辑大概是没有什么需要详细介绍的,市面上常见的邮箱注册…

PyCharm 常用快捷键

目录 1、代码编辑快捷键 2、搜索/替换快捷键 3、代码运行快捷键 4、代码调试快捷键 5、应用搜索快捷键 6、代码重构快捷键 7、动态模块快捷键 8、导航快捷键 9、通用快捷键 1、代码编辑快捷键 序号快捷键作用1CTRLALTSPACE快速导入任意类2CTRLSHIFTENTER代码补全3SHI…

关于你欠缺的NoSQL中的redis和mongoDB

文章目录 前言一、在string list hash结构中,每个至少完成5个命令,包含插入 修改 删除 查询,list 和hash还需要增加遍历的操作命令1、STRING类型2、List类型数据的命令操作:3、举例说明list和hash的应用场景,每个至少一…

数组的递归筛选

数组递归筛选 根据一个值筛选出来通过 includes 递归 const options [{name: "ikun",options: [{name: "YAY11",},],},{name: "YAY",}, ];function findValue(orgOptions,val) {let newArr1 []orgOptions.forEach(item>{if(item.options…