我想代理从nginx到kibana(logstash)的请求。我可以在端口9292上访问kibana仪表板 - 我可以确认服务正在侦听端口9292.我可以成功从nginx代理到其他服务,但kibana(端口9292)的代理指令不起作用 - 我可以代理到9200用于elasticsearch。任何想法如何进一步解决这一问题将不胜感激。无法代理从nginx到kibana
更新: 我已经尝试更改上游中的服务器设置以指向0.0.0.0以及服务器地址,但两个选项都不起作用。请求被路由到默认服务器。
另一个更新: 我注意到,从nginx的默认文件中删除代理参数允许我将请求转发到kibana listneing端口 - 然而,kibana抱怨缺少的“仪表板/ default.json”这是我我猜是由于nginx中的一些缺失或错误配置的设置。
默认设置(在/ etc/nginx的/网站可用)
upstream logstash {
server 127.0.0.1:9292; ##kibana
keepalive 100;
}
server {
listen 84;
listen [::]:84 ipv6only=on;
root /var/www/;
index index.html index.htm;
server_name logstash;
##logging per server
access_log /var/log/nginx/logstash/access.log;
error_log /var/log/nginx/logstash/error.log;
location/{
proxy_redirect off;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $host;
proxy_pass http://logstash;
}
}
第一所有你应该检查直接访问,例如尝试打开浏览器http://127.0.0.1:9292/(如果你使用本地机器),或curl -v http://127.0.0.1:9292/ – ig0r
直接访问作品 - 但不是代理设置。 –
我看到两个可能的问题。首先:看起来有些请求需要到9292(对于Kibana),其他的需要到9200(对于ES),但是你只需要把它们全部发送到9292.第二:我没有使用嵌入式Kibana但我知道独立安装程序需要更改'config.js'来将AJAX请求引导到除9200以外的端口,其中您的代理似乎只能在84上侦听。我对Apache有更多的经验,但[此示例设置](https://github.com/elasticsearch/kibana/blob/master/sample/nginx.conf)可能是方便的参考。 – rutter