通过 Zuul 代理 Kibana

Proxy Kibana through Zuul

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

的重定向

我实现了一个简单地重定向到 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 作为完全反向代理?

问题已解决。正如错误所述 "invalid content-type header",我检查了请求并发现缺少内容类型。我添加了一个具有正确内容类型的请求 header,它有效。