使用码头作为 kibana 的反向代理
using jetty as reverse proxy for kibana
我们正在尝试将 kibana 服务器隐藏在码头后面并将其用作反向代理。
发生的事情是我们确实设法从 kibana 获取索引 html 文件,但是当页面尝试检索其图像并且 css 它失败并显示 404。
我们看到的是,当我们尝试获取索引 html 时,我们将转到:http://localhost:8181/sdc1/kibanaProxy
但是,当页面尝试访问 css 时,它会转到:
http://localhost:8181/sdc1/styles/main.css?_b=7616
这是我在码头代理 servlet 中的代理函数:
public URI rewriteURI(HttpServletRequest request) {
String requestURI = request.getRequestURI();
String originalUrl = request.getRequestURL().toString();
String suffix = requestURI.replace("/sdc1/kibanaProxy", "/");
String redirectedUrl = new StringBuilder("http://localhost:5601").append(suffix).toString();
log.debug("KibanaServlet Redirecting request from: {} , to: {}", originalUrl, redirectedUrl);
return URI.create(redirectedUrl);
}
现在我知道 kibana 可以在使用 nginx 的代理后面工作。
我错过了什么?
最终的根本原因是 kibana 检索所有必需的组件(css 图片等)
我们需要将代理 url 更改为以 / 结尾的代理
/sdc1/kibanaProxy --> /sdc1/kibanaProxy/
这就解决了所有问题。
我们正在尝试将 kibana 服务器隐藏在码头后面并将其用作反向代理。
发生的事情是我们确实设法从 kibana 获取索引 html 文件,但是当页面尝试检索其图像并且 css 它失败并显示 404。
我们看到的是,当我们尝试获取索引 html 时,我们将转到:http://localhost:8181/sdc1/kibanaProxy
但是,当页面尝试访问 css 时,它会转到:
http://localhost:8181/sdc1/styles/main.css?_b=7616
这是我在码头代理 servlet 中的代理函数:
public URI rewriteURI(HttpServletRequest request) {
String requestURI = request.getRequestURI();
String originalUrl = request.getRequestURL().toString();
String suffix = requestURI.replace("/sdc1/kibanaProxy", "/");
String redirectedUrl = new StringBuilder("http://localhost:5601").append(suffix).toString();
log.debug("KibanaServlet Redirecting request from: {} , to: {}", originalUrl, redirectedUrl);
return URI.create(redirectedUrl);
}
现在我知道 kibana 可以在使用 nginx 的代理后面工作。 我错过了什么?
最终的根本原因是 kibana 检索所有必需的组件(css 图片等) 我们需要将代理 url 更改为以 / 结尾的代理 /sdc1/kibanaProxy --> /sdc1/kibanaProxy/
这就解决了所有问题。