代理Kibana通过Zuul

时间:2016-03-22 03:05:35

标签: elasticsearch proxy kibana netflix-zuul

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

我实现了一个过滤器,只需重定向到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文件中。 此外,当我尝试删除索引模式时,我遇到了这个问题:

Kibana issue when deleting index pattern

我错过了将zuul作为完全反向代理吗?

1 个答案:

答案 0 :(得分:0)

问题解决了。由于错误说"无效的内容类型标题",我检查了请求并发现内容类型丢失。我添加了一个具有正确内容类型的请求标头,它可以正常工作。