本人新手一枚,最近要在一个外网服务器上提供访问内网某机器中hive的功能。鉴于内网已经安装好现成的hive服务,于是想通过nginx重定向到hive服务。
刚开始简单的使用location + proxy_pass 实现重定向,效果很明显,访问外网服务器直接跳转成功,但是发现每次访问都需要重新登录hive账号,配置如下:
location /hue/ {
proxy_pass http://192.168.2.6:8888/beeswax/;
}
在网上找了很多资料,大多都是在说cookie传递的问题,我也尝试了,可是都不行,感觉一个很简单的问题,却困扰了我半天。
之后我尝试用upstream负载均衡来实现,代码如下:
upstream hue {
server 192.168.2.6:8888;
}
location / {
proxy_redirect off;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_pass http://hue;
}
关于 proxy_set_header 等配置网上一艘一大把,以上代码配置完测试是能解决session问题的,但是我并不想把重定向放在根目录下,尝试放在其他目录后发现会报错404,网上也有人说session保持不能用于二级目录的重定向,具体原因未知。。。不过问题是解决了,记录下来以便之后继续学习原因,也请各位大神在闲暇之余能给予解答!