Kibana4 + proxy reverso nginx usando localização / kibana4 / = Não encontrado 404

4

Estou tentando configurar o Kibana4 com o proxy reverso nginx, com sucesso parcial até agora. Aqui está minha configuração relacionada ao Kibana:

server {
  listen 82;
  server_name ${HOSTNAME};

  set $kibana kibana.docker;

  location /kibana4/ {
    proxy_pass              http://$kibana:5601;
    proxy_set_header        Host $host;
    proxy_set_header        Referer "";
    proxy_set_header        X-Real-IP $remote_addr;
    proxy_set_header        X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_http_version      1.1;
    proxy_connect_timeout   150;
    proxy_send_timeout      100;
    proxy_read_timeout      100;
    proxy_buffers           16 64k;
    proxy_busy_buffers_size 64k;
    client_max_body_size    256k;
    client_body_buffer_size 128k;
  }
}

Nesse caso, se eu for para http://localhost:82/kibana4/ , obtenho Not Found 404

Mas se eu substituir location /kibana4/ por location / , tudo funcionará bem - é claro que as alterações de URL para http://localhost:82 nesse caso.

Encontrei alguns outros tópicos relacionados a problemas semelhantes, por exemplo:

Executando o programa sinatra [Kibana] por trás nginx reverse proxy no diretório da web

mas as soluções descritas não funcionam para mim. Eu até tentei esta configuração:

server {
  listen 82;
  server_name ${HOSTNAME};

  set $kibana kibana.docker;

  location /kibana4 {
    proxy_pass              http://$kibana:5601/;
    proxy_set_header        Host $host;
    proxy_set_header        Referer "";
    proxy_set_header        X-Real-IP $remote_addr;
    proxy_set_header        X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_http_version      1.1;
    proxy_connect_timeout   150;
    proxy_send_timeout      100;
    proxy_read_timeout      100;
    proxy_buffers           16 64k;
    proxy_busy_buffers_size 64k;
    client_max_body_size    256k;
    client_body_buffer_size 128k;
  }
}

Ele inicia o proxy para kibana.docker host, mas o problema é que todos os URLs são reescritos na mesma página de carregamento do kibana. Isso faz com que qualquer arquivo CSS ou JavaScript não possa ser carregado corretamente.

A minha pergunta é: alguém sabe o que pode estar errado aqui? Alguém executa o Kibana4 com sucesso a partir de um local de raiz diferente do servidor? Eu agradeceria sua ajuda.

    
por Szymon Stepniak 08.04.2015 / 15:12

2 respostas

2

Obrigado HD. para sua pergunta abaixo do meu post anterior - foi muito esclarecedor. Isso me ajudou a perceber qual era o problema. Eu sempre esqueço que a parte do local também é passada para o proxy, e é por isso que ele precisa ser reescrito no meu caso. Aqui está o que a configuração correta deve ser:

  location ~ ^/kibana4/(.*)$ {
    rewrite /kibana4/(.*) /$1  break;
    proxy_pass              http://$kibana:5601;
    proxy_set_header        Host $host;
    proxy_set_header        Referer "";
    proxy_set_header        X-Real-IP $remote_addr;
    proxy_set_header        X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_http_version      1.1;
    proxy_connect_timeout   150;
    proxy_send_timeout      100;
    proxy_read_timeout      100;
    proxy_buffers           16 64k;
    proxy_busy_buffers_size 64k;
    client_max_body_size    256k;
    client_body_buffer_size 128k;
  }

Ele também explica por que a configuração location / está funcionando corretamente se não houver rewrite part. Depois de adicionar rewrite , apenas a parte restante é passada para proxy e funciona como um encanto.

Obrigado mais uma vez, lições aprendidas: -)

    
por 08.04.2015 / 16:47
1

Tarde para a festa, mas eu queria deixar uma solução satisfatória para o Apache aqui, pois não consigo encontrá-los. A coisa que fez o proxy de um subdiretório para mim funcionar foi adicionar uma barra final após o diretório ProxyPass:

ProxyPass /kibana/ http://localhost:5601/
ProxyPassReverse /kibana/ http://localhost:5601/

Veja aqui:

link

    
por 11.04.2017 / 04:44

Tags