nginx serve Elasticsearch and Kibana on the same host

Totally new to nginx, I need a conf file to make nginx act as a reverse proxy to serve request on the same host to elasticsearch and kibana with different url path. I mean, I want:

localhost/es -> localhost:9200
localhost/kibana -> localhost:5601

How can I make it?

Thank you

0
задан 18 July 2018 в 18:16
3 ответа

Итак, полный ответ:

server {
    listen 80;
    server_name $hostname localhost;

    auth_basic "Restricted";
    auth_basic_user_file pathtofile;

    location /kibana {
        rewrite ^/kibana/(.*)$ /$1 break;
        proxy_pass http://localhost:5601/;
    }
    location ~ ^/es(.*) {
        rewrite /es/(.*) /$1  break;
        proxy_pass http://localhost:9200;
    }   
}

Тем не менее, я не знаю почему, но первый запрос Kibana обслуживается очень медленно (40 секунд). Пробовал использовать apache httpd, это намного быстрее.

1
ответ дан 4 December 2019 в 15:53
location /es(.*) {
        proxy_pass http://localhost:9200/$args;
}

location /kibana(.*) {
        proxy_pass http://localhost:5601/$args;
}

думаю, что в дополнительных комментариях нет необходимости

0
ответ дан 4 December 2019 в 15:53

Отображения местоположения, предоставляемые koopa , можно упростить, чтобы не требовать команды перезаписи и использования регулярного выражения. Это указано в документации nginx proxy_pass

location /es/ {
    proxy_pass http://localhost:9200/;
}

location /kibana/ {
    proxy_pass http://localhost:5601/;
}
0
ответ дан 4 December 2019 в 15:53

Теги

Похожие вопросы