date: 2020-09-13title: nginx代理kibana #标题
tags: nginx #标签
categories: nginx # 分类
nginx代理kibana时,如果loccation匹配‘/’代理到kibana的话,那没什么坑,比较简单,但如果是要使用nginx的子目录来代理kibana,则需要配置一些东西,而不是常规的proxy_pass就行的,特此记录。
当然,如果你的location /
匹配着别的url,无法使用/ 来代理kibana,那么有两种方法,一个呢是上述说的使用nginx的子目录来匹配,另一个呢,就是新增server字段,使用假域名,这样我们就可以写location /
来代理kibana了,但是客户端本地需要写hosts解析记录,如果你的nginx使用公网访问并且使用的端口是80或443的话,那么此路是不通的,因为浏览器是会告诉你,此域名未备案,但如果你仅仅是内网访问,那么没关系的。
好了,废话不多说,我们来看使用子目录是怎样代理kibana的。
假设,我们域名为www.hub.com
(nginx在监听此域名),想通过www.hub.com/kibana
访问到我们的kibana,那么配置如下:
编辑kibana配置文件
修改server.basePath
的值为我们想要匹配的子目录,切忌不要以/
结尾。
server.basePath: "/kibana"
修改完成后,自行重启kibana。
修改nginx配置文件
Nginx代理 kibana 需要进行rewrite,如下:
server {
listen 80;
server_name www.hub.com;
access_log /var/log/nginx/access-kibana.log;
error_log /var/log/nginx/error-kibana.log;
location /kibana {
proxy_pass http://192.168.20.10:5601/;
rewrite ^/kibana/(.*)$ /$1 break;
}
}
至此配置完成,自行重启nginx,然后访问www.hub.com/kibana
验证即可。