Назад | Перейти на главную страницу

nginx обслуживает Elasticsearch и Kibana на одном хосте

Совершенно новый для nginx, мне нужен файл conf, чтобы заставить nginx действовать как обратный прокси-сервер для обслуживания запроса на том же хосте для elasticsearch и kibana с другим URL-адресом. То есть я хочу:

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

Как я могу это сделать?

Спасибо

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

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, и это намного быстрее.

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

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

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

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

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