Kibana4 + обратный прокси nginx с использованием location /kibana4/ = Не найдено 404

Я пытаюсь настроить Kibana4 с обратным прокси-сервером nginx, пока с частичным успехом. Вот мой конфиг, связанный с 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;
  }
}

В этом случае, если я пойду к http://localhost:82/kibana4/ Я получу Не найдено 404

Но если я заменю location /kibana4/ с location /все работает хорошо - конечно URL меняется на http://localhost:82 в таком случае.

Я нашел несколько других тем, связанных с похожей проблемой, например:

Запуск программы sinatra [Kibana] за обратным прокси-сервером nginx в веб-каталоге

но решения, описанные там, не работают для меня. Я даже попробовал этот конфиг:

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;
  }
}

Запускает прокси kibana.docker хост, но проблема в том, что все URL перезаписываются на одну и ту же страницу загрузки kibana. Это приводит к тому, что любой файл CSS или JavaScript не может быть загружен должным образом.

Мой вопрос: кто-нибудь знает, что здесь может быть не так? Кто-нибудь успешно запускает Kibana4 из корневого каталога сервера? Буду признателен за вашу помощь.

2 ответа

Решение

Спасибо, HD. на ваш вопрос ниже моего предыдущего поста - это было очень поучительно. Это помогло мне понять, в чем была проблема. Я всегда забываю, что часть местоположения также передается через прокси, поэтому она должна быть переписана в моем случае. Вот как должен выглядеть правильный конфиг:

  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;
  }

Это также объясняет, почему location / Настройка работает правильно, если нет rewrite часть. После добавления rewrite, только остальная часть передается в прокси, и это работает как шарм.

Спасибо еще раз, урок усвоен:-)

Опоздал на вечеринку, но я хотел оставить здесь удовлетворительное решение для Apache, так как не могу их найти. То, что заставляло меня проксировать из подкаталога, было добавление косой черты после каталога ProxyPass:

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

Посмотреть здесь:

http://www.marathon-studios.com/blog/solved-kibana-5-not-loading-404ing-when-reverse-proxying-in-a-subdirectory/

Начиная с Kibana 6.3, настройки теперь доступны в kibana.yml

server.host: "example.com"
server.basePath: "/tools/kibana"
server.rewriteBasePath: true

Это будет служить приложению по адресу http://example.com/tools/kibana со всеми ссылками в пользовательском интерфейсе Kibana.

Другие вопросы по тегам