1. 程式人生 > >Haproxy 代理 Kibana 以及 Nginx 子目錄反向代理 Kibana(Haproxy 代理Nginx)

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