elasticsearch 通过Zuul代理Kibana,elasticsearch,proxy,kibana,netflix-zuul,elasticsearch,Proxy,Kibana,Netflix Zuul" /> elasticsearch 通过Zuul代理Kibana,elasticsearch,proxy,kibana,netflix-zuul,elasticsearch,Proxy,Kibana,Netflix Zuul" />

elasticsearch 通过Zuul代理Kibana

elasticsearch 通过Zuul代理Kibana,elasticsearch,proxy,kibana,netflix-zuul,elasticsearch,Proxy,Kibana,Netflix Zuul,我正在研究ElasticSearch技术,我想在代理后使用kibana。我选择了zuul,因为它易于使用并允许我进行动态路由。但我面临一个问题。所有页面似乎都加载正确,但我无法通过代理创建默认索引模式。我的猜测是,带有zuul的spring cloud netfix不支持重定向(如Apache2中的ProxyPassReverse),因此重定向会转到代理应用程序的物理URL,这通常意味着最终用户最终会进入nirvana。所以Kibana发送一些带有位置头的重定向 我实现了一个只重定向到kiban

我正在研究ElasticSearch技术,我想在代理后使用kibana。我选择了zuul,因为它易于使用并允许我进行动态路由。但我面临一个问题。所有页面似乎都加载正确,但我无法通过代理创建默认索引模式。我的猜测是,带有zuul的spring cloud netfix不支持重定向(如Apache2中的ProxyPassReverse),因此重定向会转到代理应用程序的物理URL,这通常意味着最终用户最终会进入nirvana。所以Kibana发送一些带有位置头的重定向

我实现了一个只重定向到kibana路由的过滤器。以下是我的过滤器的内容:

if (ctx.getRequest().getRequestURL().toString().contains("/kibana"))
    ctx.setRouteHost(new URL(url));
if (ctx.getRequest().getRequestURL().toString().contains("/app/kibana"))
    ctx.setRouteHost(new URL(url + "/app/kibana"));
if (ctx.getRequest().getRequestURL().toString().contains("/status"))
    ctx.setRouteHost(new URL(url + "/status"));
if (ctx.getRequest().getRequestURL().toString().contains("/api/status"))
    ctx.setRouteHost(new URL(url + "/api/status"));
if (ctx.getRequest().getRequestURL().toString().contains("/bundles"))
    ctx.setRouteHost(new URL(url + "/bundles"));
if (ctx.getRequest().getRequestURL().toString().contains("/elasticsearch"))
    ctx.setRouteHost(new URL(url + "/elasticsearch"));
路线也映射在yml文件中。 另外,在尝试删除索引模式时,我遇到了以下问题:


要让zuul成为完全反向代理,我还缺少什么?

问题已经解决。正如错误所说的“无效内容类型头”,我检查了请求,发现内容类型丢失了。我添加了一个具有正确内容类型的请求头,它可以正常工作