我对 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/;
}