在反向代理NGINX_HAProxy_IIS_Traefik后面运行Grafana

介绍


在此教程中,您将配置 Grafana 以运行反向代理后面。

在代理后面运行 Grafana 时,您需要配置域名,以便让 Grafana 知道如何正确渲染链接和重定向。

  • 在 Grafana 配置文件中,更改为将要使用的域名:server.domain
[server]
domain = example.com

重新启动Grafana,以便新更改生效。


您也可以在子路径后面为Grafana服务,例如:http://example.com/grafana
在子路径后面为Grafana服务:

  • 包括在 末尾的子路径:root_url
  • 设置为:serve_from_sub_path = true
[server]
domain = example.com
root_url = %(protocol)s://%(domain)s:%(http_port)s/grafana/
serve_from_sub_path = true

接下来,您需要配置反向代理。

配置 NGINX


NGINX是一种高性能负载均衡器、Web 服务器和反向代理。

在您的 NGINX 配置文件中,添加一个新块:server

server {
  listen 80;
  root /usr/share/nginx/html;
  index index.html index.htm;

  location / {
   proxy_pass http://localhost:3000/;
  }
}

重新加载 NGINX 配置。

导航到机器上的端口 80 NGINX 正在运行。您受到Grafana登录页面的欢迎。
要配置 NGINX 在子路径下为Grafana服务,请更新块,确保此块是第一个块:location location

server {
  listen 80;
  root /usr/share/nginx/www;
  index index.html index.htm;

  location ~/grafana/ {
   proxy_pass http://localhost:3000/;
  }
}

配置HAProxy


配置HAProxy在子路径下为Grafana服务:

frontend http-in
  bind *:80
  use_backend grafana_backend if { path /grafana } or { path_beg /grafana/ }

backend grafana_backend
  # Requires haproxy >= 1.6
  http-request set-path %[path,regsub(^/grafana/?,/)]

  # Works for haproxy < 1.6
  # reqrep ^([^\ ]*\ /)grafana[/]?(.*) \1\2

  server grafana localhost:3000

配置 IIS


IIS 要求安装 URL 重写模块。

要配置 IIS 在子路径下为 Grafana 服务,在 IIS 管理器中为父网站创建一个入站规则,其设置如下:

  • 模式:grafana(/)?(.*)
  • 检查复选框 Ignore case
  • 重写网址设置为 http://localhost:3000/{R:2}
  • 检查复选框 Append query string
  • 检查复选框 Stop processing of subsequent rules

这是在中web.config生成的重写规则

  <rewrite>
      <rules>
          <rule name="Grafana" enabled="true" stopProcessing="true">
              <match url="grafana(/)?(.*)" />
              <action type="Rewrite" url="http://localhost:3000/{R:2}" logRewrittenUrl="false" />
          </rule>
      </rules>
  </rewrite>

有关更深入的说明,请参阅IIS URL 重写教程

配置Traefik


Traefik云原生反向代理 / 负载平衡器 / 边缘路由器

使用码头供应商,以下标签将配置路由器和服务的域或子域路由。

  labels:
      traefik.http.routers.grafana.rule: Host(`grafana.example.com`)
      traefik.http.services.grafana.loadbalancer.server.port: 3000

部署在子路径上

  labels:
      traefik.http.routers.grafana.rule: Host(`example.com`) && PathPrefix(`/grafana`)
      traefik.http.services.grafana.loadbalancer.server.port: 3000

使用文件提供商的示例。

http:
  routers:
    grafana:
      rule: Host(`grafana.example.com`)
      service: grafana
  services:
    grafana:
      loadBalancer:
        servers:
          - url: http://192.168.30.10:3000
http:
  routers:

版权声明:本文为作者原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。

原创文章,作者:老C,如若转载,请注明出处:https://www.code404.icu/949.html

发表评论

登录后才能评论