nginx 在同一主机上提供 Elasticsearch 和 Kibana

nginx 在同一主机上提供 Elasticsearch 和 Kibana

我对 nginx 完全陌生,我需要一个 conf 文件来让 nginx 充当反向代理,以便在同一主机上向具有不同 URL 路径的 elasticsearch 和 kibana 提供请求。我的意思是,我想要:

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

我怎样才能做到?

谢谢

答案1

因此,完整的答案是:

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,速度快得多。

答案2

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

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

认为没有必要添加评论

答案3

提供的位置映射库巴可以简化为不需要重写命令和使用正则表达式。这在nginx proxy_pass 文档

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

location /kibana/ {
    proxy_pass http://localhost:5601/;
}

相关内容