通过 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,它有效。
我实际上正在研究 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,它有效。