如何将 Nginx 配置为 Grafana 服务器的反向代理

Grafana 是一个开源数据可视化和监控套件。
它提供对 Graphite 、 Elasticsearch 、 Prometheus 、 Zabbix 和更多数据库的支持。
Grafana 允许我们查询、可视化、警报和了解指标,并能够为应用程序或者基础设施性能监控管理和创建我们自己的仪表板。

在本教程中,我们将解释如何将 Nginx 配置为 Grafana Server 的反向代理。
出于本教程的目的,我们将在安装 Grafana 服务器的同一台服务器上安装 Nginx,Grafana 将作为反向代理在 Nginx 后面运行,它将侦听端口 80,并将所有请求重定向到 Grafana端口 3000 。

方案1 在反向代理后面以子路径运行Grafana

第1步 Grafana 配置

在 grafana.ini 文件中添加以下行

[jack@onitroad ~]# vi /etc/grafana/grafana.ini
[...]
# The full public facing url you use in browser, used for redirects and emails
# If you use reverse proxy and sub path specify full url (with sub path)
root_url = http://localhost:3000/grafana/
[...]

对文件 grafana.ini 进行任何修改后,我们应该重新启动 Grafana Server

[jack@onitroad ~]# systemctl restart grafana-server

第2步 nginx配置

创建一个新目录,我们将其中创建 nginx 块文件:

[jack@onitroad ~]# mkdir /etc/nginx/sites-available//etc/nginx/sites-enabled

现在打开 nginx.conf 文件并将以下行添加到 http {} 块的末尾:

[jack@onitroad ~]# /etc/nginx/nginx.conf
[...]
include /etc/nginx/sites-enabled/*.conf;

让我们创建一个名为 onitroad.local.conf 的新 nginx 块:

[jack@onitroad ~]# vi /etc/nginx/sites-available/onitroad.local.conf
server {
  listen      80;
  listen      [::]:80 ipv6only=on;
  server_name onitroad.local www.onitroad.local;
  root /usr/share/nginx/www;
  index index.html index.htm;
  location /grafana/{
   proxy_pass http://localhost: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;
  }
}

现在我们已经创建了我们的服务器块文件,我们需要启用它。
为此,我们必须在启用站点的目录中为服务器块创建一个符号链接。

[jack@onitroad ~]# ln -s /etc/nginx/sites-available/onitroad.local.conf /etc/nginx/sites-enabled/onitroad.local.conf

要检查使用 bolow 命令:

[jack@onitroad ~]# nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

确保使用以下命令重新加载 Nginx:

[jack@onitroad ~]# systemctl reload nginx

方案2 – 在反向代理后面以子域运行 Grafana

第1步 Grafana 配置

在 grafana.ini 文件中添加以下行

[jack@onitroad ~]# vi /etc/grafana/grafana.ini
[...]
# The full public facing url you use in browser, used for redirects and emails
# If you use reverse proxy and sub path specify full url (with sub path)
root_url = http://localhost:3000
[...]

对文件 grafana.ini 进行任何修改后,我们应该重新启动 Grafana Server

[jack@onitroad ~]# systemctl restart grafana-server

第2步 nginx配置

让我们创建一个新的 nginx 块文件,如下所示:

[jack@onitroad ~]# vi /etc/nginx/sites-available/grafana.onitroad.local.conf
server {
  listen      80;
  listen      [::]:80 ipv6only=on;
  server_name grafana.onitroad.local www.grafana.onitroad.local;
  location/{
   proxy_pass http://localhost: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;
  }
}

现在我们已经创建了我们的服务器块文件,我们需要启用它。

[jack@onitroad ~]# ln -s /etc/nginx/sites-available/grafana.onitroad.local.conf /etc/nginx/sites-enabled/grafana.onitroad.local.conf

确保使用以下命令重新加载 Nginx:

[jack@onitroad ~]# systemctl reload nginx

如果你在 CentOS 7 或者 RHEL 7 上安装了 Grafana 和 Nginx 并且启用了 Selinux,则需要执行以下命令:

[jack@onitroad ~]# setsebool -P httpd_can_network_connect=1
日期:2020-06-02 22:18:52 来源:oir作者:oir