Kibana: server.basePath 导致 404

创建于 2016-03-25  ·  14评论  ·  资料来源: elastic/kibana

我在 RHEL 7.2 上运行 kibana 4.4.1

当 kibana.yml 文件不包含设置server.basePath时,一切正常。 但是,当 basePath 设置为server.basePath: "/kibana4"所有 HTTP 请求都会导致 404。 例如http://xxxx :5601/kibana4 导致 404 和http://xxxx :5601 被重定向到http://xxxx :5601/kibana4/app/kibana 这也会导致 404。

我是否正确使用了 server.basePath? 为什么都是 404?

最有用的评论

请使用 server.basepth 添加足够的示例。 由于缺乏文档,许多用户都在苦苦挣扎。

所有14条评论

这里有更多信息...

curl http://x.x.x.x:5601/返回

<script>
   var hashRoute = '/kibana4/app/kibana';
   var defaultRoute = '/kibana4/app/kibana';
   ...
</script>

curl http://x.x.x.x:5601/kibana4/app/kibana回报

{"statusCode":404,"error":"Not Found"}

为什么“/kibana4/app/kibana”会返回 404?

弥敦道

@nreese这是因为在将请求发送到 Kibana 之前,代理应该删除基本路径。 这通常称为“请求重写”,并且应该存在任意数量的帖子来向您展示如何为您的代理设置它。

你能澄清一下这是如何工作的吗? 我真的卡住了,找不到
对文档有很大帮助

在 2016 年 3 月 28 日星期一下午 2:45,Spencer [email protected]写道:

@nreese https://github.com/nreese这是因为 basepath 应该
在请求被发送到 Kibana 之前被代理删除。 这是
通常称为“请求重写”并且应该存在任意数量的帖子
向您展示如何为您的代理设置它。


你收到这个是因为你被提到了。
直接回复此邮件或在 GitHub 上查看
https://github.com/elastic/kibana/issues/6665#issuecomment -202574432

同样的问题在这里。 我发现 nginx 的这个配置可以工作: https :

我最终想通了,并使用发布了堆栈溢出的答案
代理服务器
http://stackoverflow.com/questions/36266776/kibana-server-basepath-results-in-404。
我没想到 server.basePath 只会将基本路径添加到传出 URL
并且不在传入流量上处理它们。

在星期二,2016年4月12日在上午08时51分,冯宇[email protected]写道:

同样的问题在这里。 我发现 nginx 的这个配置可以工作:
https://discuss.elastic.co/t/4-3-0-how-to-configure-your-nginx-balancer-and-apache-reverse-proxy/37351/5


你收到这个是因为你被提到了。
直接回复此邮件或在 GitHub 上查看
https://github.com/elastic/kibana/issues/6665#issuecomment -208945037

请使用 server.basepth 添加足够的示例。 由于缺乏文档,许多用户都在苦苦挣扎。

我的建议是重新措辞
server.basePath 配置
文档中的选项。 当前的措辞几乎没有帮助
解释 kibana 如何使用 basePath。 我的第一直觉是附加
URL 的 basePath。 这是不正确的,导致了 404。 也许
像下面这样的东西会为用户指明正确的方向

使您能够指定安装 Kibana 的路径(如果您落后)
一个代理。 basePath值不会改变kibana监听的地址
相反,您的代理应该在之前删除 basePath 值
将请求转发到 Kibana。 此设置不能以斜杠 (/) 结尾。

2016 年 4 月 14 日星期四上午 4:19,abhijit [email protected]写道:

请使用 server.basepth 添加足够的示例。 很多用户是
由于缺乏文档而挣扎。


你收到这个是因为你被提到了。
直接回复此邮件或在 GitHub 上查看
https://github.com/elastic/kibana/issues/6665#issuecomment -209866755

这是荒唐的。 设置基本路径实际上应该更改 kibana 的基本路径,并且不需要任何反向代理重写。 这种行为在 webapps 中相当 101。

我认为这里有些混乱。 basePath专为想要在代理后运行 Kibana 的人而存在。 它并不意味着在任何其他方面都是有用的功能。 正如@nreese所说,我们可能可以改进文档以使其更加清晰。 我已经打开了一个 PR 来改进文档的措辞: https :

我知道 basePath 是什么并且我在反向代理后面使用它。
我反对这样一个事实,即我必须对代理进行 url 重写才能使其正常工作。

我也是。 我也知道 basePath 是什么并且我在反向代理后面使用它。
我反对这样一个事实,即我必须对代理进行 url 重写才能使其正常工作。

请...

支持这一点对我们来说可能是微不足道的,但此时我们不能仅仅改变 basePath 的工作方式。 您如何看待https://github.com/elastic/kibana/issues/9522?

我同意,我只是偶然发现了同样的问题。 无缘无故地创造了很多额外的工作。 如果你更新基本路径,它应该改变它。 拥有不同的 URL 会导致难以解决问题。

我在这个系统上得到了这个:

[09:39:17] [ root@hostname :]# yum list installed | grep kibana
kibana.x86_64 5.5.1-1 @/kibana-5.5.1-x86_64
[09:39:29] [ root@hostname :]# yum list installed | grep httpd
httpd24u.x86_64 2.4.27-1.ius.el6 @ius
httpd24u-filesystem.noarch 2.4.27-1.ius.el6 @ius
httpd24u-mod_ldap.x86_64 2.4.27-1.ius.el6 @ius
httpd24u-mod_ssl.x86_64 1:2.4.27-1.ius.el6 @ius
httpd24u-tools.x86_64 2.4.27-1.ius.el6 @ius
[09:39:34] [ root@hostname :]# uname -r
2.6.32-696.6.3.el6.x86_64
[09:39:47] [ root@hostname :]# cat /etc/redhat-release
CentOS 6.9 版(最终版)
[09:39:58] [ root@hostname :]#

  • 删除了“server.basePath”
    这是完整的“kibana.yml”文件:

[09:39:58] [ root@hostname :~]# cat /etc/kibana/kibana.yml
服务器端口:5601
server.name: Kibana-STG
服务器主机:0.0.0.0
kibana.index: .kibana
kibana.defaultAppId: 发现
logging.dest: /var/log/kibana/kibana.log
i18n.defaultLocale: "en"

elasticsearch.url: http://localhost :9200
[09:42:35] [ root@hostname :~]#

  • 在 Apache 上添加了此代理设置

ProxyPreserveHost On
代理请求开启
ProxyPass / http://localhost :5601/ timeout=200
ProxyPassReverse / http://localhost :5601/

此页面是否有帮助?
0 / 5 - 0 等级