elasticsearch 在nginx后面提供服务时,Kibana仪表板未加载,elasticsearch,nginx,reverse-proxy,kibana,elasticsearch,Nginx,Reverse Proxy,Kibana" /> elasticsearch 在nginx后面提供服务时,Kibana仪表板未加载,elasticsearch,nginx,reverse-proxy,kibana,elasticsearch,Nginx,Reverse Proxy,Kibana" />

elasticsearch 在nginx后面提供服务时,Kibana仪表板未加载

elasticsearch 在nginx后面提供服务时,Kibana仪表板未加载,elasticsearch,nginx,reverse-proxy,kibana,elasticsearch,Nginx,Reverse Proxy,Kibana,当我访问nginx后面的Kibana时,由于Kibana.bundle.js文件中的错误,仪表板将不会加载如果我直接访问Kibana(不是通过代理)则不会发生此错误 kibana.bundle.js文件中的错误对于不同的浏览器(Chrome、FF)是不同的。这是因为所讨论的文件似乎未正确解压缩 我所有的浏览器都设置为接受gzip编码,这就是Kibana提供的服务kibana.bundle.js是一个7mb的文件,压缩后的文件大小为1.5。如上所述,当我直接访问Kibana时,该文件在客户端上被解

当我访问nginx后面的Kibana时,由于Kibana.bundle.js文件中的错误,仪表板将不会加载如果我直接访问Kibana(不是通过代理)则不会发生此错误

kibana.bundle.js文件中的错误对于不同的浏览器(Chrome、FF)是不同的。这是因为所讨论的文件似乎未正确解压缩

我所有的浏览器都设置为接受gzip编码,这就是Kibana提供的服务kibana.bundle.js是一个7mb的文件,压缩后的文件大小为1.5。如上所述,当我直接访问Kibana时,该文件在客户端上被解压得很好

有关我的设置的详细信息:
  • ELK(elastichsearch、logstash、kibana)在一个虚拟机中设置堆栈,所有版本均5.4.0
  • Kibana是在端口443下为https设置的(没有配置server.basePath)
  • Kibana和elasticsearch都在使用x-pack,不确定这有多重要,但它可能会增加优化包的大小(例如Kibana.bundle.js)
  • 在运行Ubuntu14LTS的其他VM中安装nginx
  • nginx将请求转发给另一个代理。我将保留详细信息,但这个设置是我必须处理的。然而,当删除nginx并简单地在Kibana前面使用第二个代理时,它也可以很好地工作,这一点毫无价值
有关nginx配置的详细信息: 我为Kibana实例提供的服务器块的简化版本。基本上,这将转发给另一个代理,该代理将在端口443下的正常位置访问Kibana

server {
        server_name blah;
        listen 443 ssl;
        ssl    on;
        ssl_certificate    /etc/nginx/ssl/blah.pem;
        ssl_certificate_key   /etc/nginx/ssl/blah.pem;
        access_log /var/log/nginx/access-blah.log;
        error_log /var/log/nginx/error-blah.log warn;
        location / {
               proxy_pass  http://other_proxy;
               proxy_http_version 1.1;
               proxy_set_header Connection "upgrade";
               proxy_set_header Host $host;
               proxy_set_header X-Real-IP $remote_addr;
               proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
               proxy_set_header X-Forwarded-Proto https;
               proxy_set_header Upgrade $http_upgrade;
               proxy_cache_bypass $http_upgrade;
        }
}
除此之外,我对/etc/nginx/nginx.conf使用默认设置。我尝试过很多选择(sendfile off;proxy_buffering off;但都不起作用)

测试详情: 当使用Chrome或FF进行测试时,我会得到一个带有预期标头的正常响应,所有请求处理时间都在1秒以下

现在,当我直接卷曲bundle时,我仍然会得到对Kibana的直接调用的sub 1s响应,但是当我通过代理卷曲时,我会得到这种类型的响应:

curl -v https://blah:443/bundles/kibana.bundle.js?v=15063
...
 99 7111k   99 7087k    0     0   346k      0  0:00:20  0:00:20 --:--:--     0* TLSv1.2 (IN), TLS alert, Client hello (1):
{ [2 bytes data]
* transfer closed with 8192 bytes remaining to read
* Curl_http_done: called premature == 1
* stopped the pause stream!
 99 7111k   99 7103k    0     0   347k      0  0:00:20  0:00:20 --:--:--  3971
* Closing connection 0
} [5 bytes data]
* TLSv1.2 (OUT), TLS alert, Client hello (1):
} [2 bytes data]
curl: (18) transfer closed with 8192 bytes remaining to read
它几乎在瞬间达到99%,但在剩余的8k字节上,它会在20秒后超时。我从nginx得到的错误是,在读取上游时,上游关闭了连接


我觉得在某个地方缺少一个缓冲区大小配置。希望一些nginx/kibana专家能帮助我!:)谢谢

发现nginx后面的代理(在tomcat7上运行)的虚拟机空间不足。我清理了几gig日志,发现
/tmp
上也安装了
溢出
。通过
lsof
我发现tomcat正在使用那个文件夹。所以我关闭了tomcat,取消安装溢出,然后从tomcat中清除缓存并重新启动它,它工作正常