![通过 Apache/Nginx 代理在静态 URL 后面公开特定的 Kibana 仪表板](https://linux22.com/image/714004/%E9%80%9A%E8%BF%87%20Apache%2FNginx%20%E4%BB%A3%E7%90%86%E5%9C%A8%E9%9D%99%E6%80%81%20URL%20%E5%90%8E%E9%9D%A2%E5%85%AC%E5%BC%80%E7%89%B9%E5%AE%9A%E7%9A%84%20Kibana%20%E4%BB%AA%E8%A1%A8%E6%9D%BF.png)
我们在 Centos 7 上安装了 Kibana 5.5.2,并配置了许多仪表板,所有仪表板都可以顺利连接到 IP:5601。
一位客户要求我们让他自己的仪表板在特定主机名下可访问。我们通过 Apache 和 Nginx 代理尝试了很多配置,但都没有成功。
更多详细信息请参见:
- 客户想要去类似的地方http://dasboard.customer.com 并以嵌入模式(全屏)查看仪表板。网址必须保持“静态”(.com 后面不附加任何上下文或值)
我们将 Apache 配置为将此虚拟主机代理到 Kibana 提供的特定“快照短网址”(具有
/goto/some-alphanumeric-code 上下文的网址),但我们收到很多 Kibana
错误或 404(可能很多资源丢失并且没有用这种代理密码重新映射)ProxyPass / http://10.10.102.4:5601/goto/be563e821f356144222a28b348e48a2d?embed=true nocanon
有人能给我们一些提示或例子吗?如果您需要更多信息,请问我。
多谢!
答案1
所以我遇到了同样的问题。我们想在公开的门户应用程序中显示一些仪表板,但 kibana 位于私有子网中,您只能从门户所在的服务器访问,或者如果您是用户,则可以通过 VPN 访问。
我的 nginx 配置如下
resolver 10.10.0.2;
set $kibana_endpoint https://kibana.prod.domain.com;
如果我没记错的话,你需要解析器行才能set
工作。这需要是你的 DNS 服务器。如果你使用 IP 和
然后,我们为想要显示的仪表板创建了一个 URI,它是
#
# allows non-vpn users to see API dashboard
location /view/platform/ {
rewrite ^/view/platform/(.*) /$1 break;
proxy_pass $kibana_endpoint;
}
答案2
正如@Mike 在他的第二条评论中所建议的那样,最后我只是使用了 Apache 公开的 iframe。
在/var/www/html/index.html
:
<html>
<head>
<style>
body {
margin: 0;
}
iframe {
max-width: 100%;
width: 100%;
height: 100%;
overflow: hidden;
border: none;
margin: auto;
}
</style>
</head>
<body>
<iframe
src="https://localhost:5601/goto/59a0cd9d5b20600031114818b6ac0dd5?embed=true"
scrolling="yes"
></iframe>
</body>
</html>
如果使用 CA 签名的 SSL 证书(而不是自签名的),浏览器就不会抱怨 iframe。