Haproxy 代理 Kibana 以及 Nginx 子目录反向代理 Kibana(Haproxy 代理Nginx)

公司需求:

  访问 xxx.com/kibana,代理到后端 kibana x.x.x.x:5601

方案:

  haproxy /kibana --> nginx 80端口 -->  后端 kibana

具体实现:

  1、首先,如果需要 实现 https://example.com/kibana,需要编辑 kibana.yml,修改如下配置,并重启kibana

    server.basePath: "/kibana" 

  2、Nginx代理 kibana 需要进行 rewrite,配置如下(kibana.conf):

    server {
      listen 80;
      server_name x.x.x.x;

        access_log /var/log/nginx/access-kibana.log;
      error_log /var/log/nginx/error-kibana.log;

      location /kibana {
        proxy_pass http://x.x.x.x:5601/;
        rewrite ^/kibana/(.*)$ /$1 break;
      }

    }

  3、Haproxy 代理到 nginx 80,配置如下:

    frontend main *:5000
    acl kibana path_beg -i /kibana

    use_backend kibana_bk if kibana
    default_backend app

    backend app
    balance roundrobin
    server nginx x.x.x.x:8888 check

    backend kibana_bk
    balance roundrobin
    server kibana_bk x.x.x.x:80 check

补充:

  公司网络的环境限制,需要haproxy代理到 nginx,再代理到后端。

  如果网络环境可以, 直接 haproxy 代理到 kibana,或者 nginx代理到 kibana(参考上面的nginx配置)

  下面说下,haproxy 代理到 kibana

  1、同样,如果需要 实现 https://example.com/kibana,需要编辑 kibana.yml,修改如下配置,并重启kibana

    server.basePath: "/kibana"

  2、haproxy 代理 kibana,配置如下:

    frontend main *:5000
    acl kibana path_beg -i /kibana

    use_backend kibana_bk if kibana
    default_backend app

    backend app
    balance roundrobin
    server nginx x.x.x.x:8888 check

    backend kibana_bk
    balance roundrobin
    reqrep ^([^\ ]*\ /)kibana[/]?(.*) \1\2
    server kibana_bk x.x.x.x:5601 check

猜你喜欢

转载自www.cnblogs.com/hiroliu/p/9907213.html
今日推荐