ELK -- kibana 用nginx代理后无法访问

背景:

        本地搭建好elk后,一切正常,后面改成用nginx代理kibana的5601端口,发现代理后无法正常访问(未代理的地址可正常访问),花了很多时间去查问题,报错基本都是http://ip:port/spaces/enter,或者404级别的错误,/符号缺少的情况都试过了,还是不行,只要你是要改他的访问地址就会报错

代理配置如下:

	server {
        listen       6667; 
		server_name  localhost;
		location /kibana/ {
            proxy_pass http://192.168.0.111:5601/;
        }
    } 

原因:

        代理后的请求地址 http://ip:port/spaces/enter 无法被正常映射,

导致访问不到kibana服务器地址 http://192.168.0.111:5601/spaces/enter

        解决完问题后发现,应该是kibana的页面访问有涉及到重定向回调

比如你服务器访问地址是 http://192.168.0.111:5601/app/XXX, 

你代理端口和uri 后,访问变成了 http://ip:6667/kibana/app/XXX。

经过映射后地址就是http://192.168.0.111:5601/app/XXX。

        问题是kibana他重定向了,当他内部回调回来时,

代理调用地址为 http://ip:6667/spaces/enter,

按这个地址的话,上面nginx的配置是无法正常映射到http://192.168.0.111:5601/spaces/enter的。

就算说你加上http://ip:6667/spaces/enter这个地址的映射到服务器中,指不定还有别的回调的uri地址得处理。

解决:

        1:只代理端口,不代理uri,这样相当于只把5601换成别的端口。

	server {
        listen       6667; 
		server_name  localhost;
		location / {
            proxy_pass http://192.168.0.111:5601/;
        }
    } 

        处理结果,可正常访问

        2:即代理端口,也代理uri(只代理端口感觉都没必要用nginx,直接kibana配置文件修改port就可以)。给kibana添加基础路径,这个基础路径和代理的路径相同/kibana

(就是服务器放访问uri路径前面都加上/kibana  原服务地址http://192.168.0.111:5601/app  变成http://192.168.0.111:5601/kibana/app)

        到kibana的配置文件config 目录,修改kibana.xml,添加配置

server.basePath: "/kibana"
server.rewriteBasePath: true

如:

访问代理后地址  http://ip:6667/kibana/app  进入登录页面,按下面映射规则,地址映射为http://192.168.0.111:5601/kibana/app(相当于kibana服务器没加基础路径时候的http://192.168.0.111:5601/app)

代理回调地址 http://ip:6667/kibana/spaces/enter(明细可以被正常映射到服务器)

映射后地址 http://192.168.0.111:5601/kibana/spaces/enter(相当于kibana服务器没加基础路径时候的http://192.168.0.111:5601/spaces/enter)

    server {
        listen       6667; 
 
		location /kibana/ {
            proxy_pass http://192.168.0.111:5601/kibana/;
        }
    } 

        处理结果,可正常访问

        其实还可以在nginx中,把可能出现的重定向uri全都路由回kibana 也可以,这样就可以kibana不添加基础路径,但是具体有哪些地址我不清楚就不做这样的解决方式了

以上就是我对nginx代理出现的无法正常访问的处理,上面的重定向是我猜的,不一定真实就是这样,如果有大佬质疑,请多指教

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值