我实际上正致力于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作为完全反向代理吗?
答案 0 :(得分:0)
问题解决了。由于错误说"无效的内容类型标题",我检查了请求并发现内容类型丢失。我添加了一个具有正确内容类型的请求标头,它可以正常工作。