[英]Kibana dashboard is not loading when served behind nginx
当我访问在nginx后面设置的Kibana时,由于kibana.bundle.js文件中的错误,仪表板将无法加载。 如果我直接访问Kibana (而不是通过代理), 则不会发生此错误 。
对于不同的浏览器(Chrome,FF), kibana.bundle.js文件中的错误有所不同。 这是由于有关文件似乎未正确解压缩的事实。
我所有的浏览器都设置为接受gzip编码,而这正是Kibana所提供的。 kibana.bundle.js是一个7mb的文件,压缩后的大小为1.5 。 如上所述,当我直接访问Kibana时,在客户端上将该文件解压缩就好了。
我为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;关闭了proxy_buffering;但没有一个起作用)。
使用Chrome或FF进行测试时,我得到了带有预期标题的正常响应,所有请求的处理时间都小于1。
现在,当我直接卷曲捆绑包时,对于直接调用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空间不足后,发现代理的VM(在tomcat7上运行)。 我清理了几笔日志,发现/tmp
上也overflow
。 使用lsof
我发现tomcat正在使用该文件夹。 所以我关闭了tomcat,卸载了溢出的缓存,然后从tomcat清除了缓存,然后重新启动它,它运行正常。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.