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

这篇具有很好参考价值的文章主要介绍了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版本为例)

Nginx代理Grafana,鉴权访问以及Grafan免登录访问,prometheus,nginx,grafana,运维
Nginx代理Grafana,鉴权访问以及Grafan免登录访问,prometheus,nginx,grafana,运维
Nginx代理Grafana,鉴权访问以及Grafan免登录访问,prometheus,nginx,grafana,运维
Nginx代理Grafana,鉴权访问以及Grafan免登录访问,prometheus,nginx,grafana,运维
Nginx代理Grafana,鉴权访问以及Grafan免登录访问,prometheus,nginx,grafana,运维

  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文章来源地址https://www.toymoban.com/news/detail-585613.html

📖参考文档

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

到了这里,关于Nginx代理Grafana,鉴权访问以及Grafan免登录访问的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • docker安装grafana,prometheus,exporter以及springboot整合详细教程(GPE)

    springboot项目ip:192.168.168.1 测试服务器ip:192.168.168.81 文章来自互联网,自己略微整理下,更容易上手,方便自己,方便大家 最终效果: node springboot docker pull prom/node-exporter docker pull prom/mysqld-exporter docker pull google/cadvisor docker pull prom/prometheus docker pull grafana/grafana   访问url: http://192.168

    2024年02月10日
    浏览(43)
  • Centos7笔记09之nginx反向代理grafana

    使用nginx反向代理访问grafana服务 本例测试用的域名(假的):                  x179.com 本例原本能正常访问的grafana地址:   192.168.10.90:3000 准备用nginx反代grafana后的地址:      http://x179.com/grafana/ 1、修改配置 ● 修改 [server] 区域    ○ 修改 ;domain = localhost  改为 domain

    2024年01月25日
    浏览(55)
  • Linux部署docker以及prometheus+node_exporter+mysqld-exporter+grafana+cadvisor+Alertmanager(告警)

    Linux安裝docker以及部署prometheus+node_exporter+mysqld-exporter+grafana+cadvisor+Alertmanager(告警) 1、官方安裝脚本自动安装docker curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun 2、启动docker systemctl start docker 3、搜索镜像-例如搜索prometheus docker search prom/prometheus 4、拉取镜像--这里仅列出我

    2024年03月15日
    浏览(65)
  • nginx 代理sftp,达到访问nginx服务器就间接访问sftp服务器

    测试环境部署规划: 192.168.0.101 nginx 服务器    192.168.0.102 sftp 服务器  192.168.0.103  作为客户端去访问,这里三台机器选用centos 7.9系统,客户端可以使用window,软件访问sftp服务! 首先 1.在192.168.0.101机器上部署nginx  步骤: #安装依赖 yum install gcc pcre-devel openssl-devel  wget -y 

    2024年02月16日
    浏览(69)
  • Nginx反向代理,让网页可以被别人访问

    1、下载Nginx   想要使用Nginx反向代理首先进入Nginx官网 2、在右侧选择download 3、选择自己操作系统的稳定版本 4、解压压缩包 5、进入html文件夹  把想要代理的网页替换文件夹中的index.html 6、回到nginx解压的主目录打开nginx.exe  如果没有出现小黑框也没事。 7、打开浏览器,

    2024年02月06日
    浏览(40)
  • nginx配置odoo反向代理和ssl访问

    用nginx配置实现,odoo15的代理端口在Ubuntu环境 1、odoo安装ok,本地可以运行 2、安装nginx 3、申请证书不懂的参考:“https://blog.csdn.net/u012798683/article/details/113845089”,安装这个哥哥的配置搞不定 4、参考官网的模式在 /etc/nginx/sites-enabled/odoo.conf配置ok:原文链接:https://www.odoo.co

    2024年04月27日
    浏览(39)
  • linux环境minio安装启动,管理员登录,nginx代理

    一.下载minio 官网下载:  MinIO | Code and downloads to create high performance object storage  直接点击下载或者用wget https://dl.min.io/server/minio/release/linux-amd64/minio 最后都是得到一个文件minio(大概100M) 二.启动minio 1.创建文件夹,比如 2.将第一步得到的minio放到上面目录下 3.给该文件夹赋权限  

    2023年04月24日
    浏览(67)
  • 外卖项目,登录设计,nginx反向代理,MD5明文加密

    .gitignore文件里的东西是进行排除,不用git进行管理。 登录设计, controller 接收并封装参数 调用service方法查询数据库 封装结果并响应 登录成功后,生成jwt令牌 Service层 调用mapper查询数据库 密码比对 返回结果 Mapper 编写sql语句 为什么前端不能直接发请求,请求tomcat服务器,

    2024年02月14日
    浏览(44)
  • 内网走nginx代理访问高德webapi2.0

    需求:客户的电脑都只能访问内,服务器可以访问外网,客户电脑使用的项目中用到了高德webapi2.0。 10.200.31.45:32100是我们的web服务器。 网上基本上都是对高德webapi1.4的配置方式,而web2.0有一些差别。 如果是index.html引入, 修改之前的应用: 修改之后的配置: 如果是js动态加

    2024年02月05日
    浏览(52)
  • nginx 配置代理ip访问https的域名配置

    目录 问题背景 解决方式 正向代理:  反向代理:  通俗点儿一句话,正向与反向的区别: 在某些单位或机构内部,访问互联网接口需要通过指定的服务器去访问,那我们就需要通过代理 ip 和 端口去访问外网域名。 示例:如何通过指定 ip 和 端口 访问 https://api.elecredit.co

    2024年02月14日
    浏览(50)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包