您的位置:首页 > 数据库 > Redis

nginx和shiro-redis解决单点登陆的问题

2018-01-19 16:10 441 查看
引言:当我们使用nginx做集群,shiro-redis解决session共享的问题的时候,我们是否会遇到其他系统也要经过我们系统登陆才可以使用,这里我们将介绍nginx和shiro-redis(这里的配置就不多说了,直接可以查看上篇文章:解决使用redis进行基于shiro的session集群共享)来实现单点登陆问题,这里我们就以一台服务器来举例
首先我们已经集群部署了我们的项目A在8083和8082这2个端口的tomcat下,nginx配置如下:
upstream localhost{
server 127.0.0.1:8083;
server 127.0.0.1:8082;
}
server {
listen 80;
server_name localhost;

#charset koi8-r;
#access_log logs/host.access.log main;

location / {
proxy_pass http://localhost; client_max_body_size 100m;
}

#缓存相应的文件(静态文件)
location ~ .*\.(jsp|gif|jpg|png|htm|html|css|js|flv|ico|swf)(.*) {
proxy_pass http://localhost; proxy_redirect off;
proxy_set_header Host $host;
proxy_cache cache_one;
proxy_cache_valid 200 302 1h;
proxy_cache_valid 301 1d;
proxy_cache_valid any 1m;
expires 30d;
}

location /apis { #添加访问目录为/apis的代理配置,解决警民互动外网跨域问题
rewrite ^/apis/(.*)$ /$1 break;
proxy_pass http://localhost; }
}以上配置,我们只要访问localhost/A就能进入到登陆界面,登陆进去就可以访问2个端口下任意的接口。
但是现在,有另外一个公司的项目B部署在另外一台服务器如:192.168.1.2上,端口为8084,但是我们需要登陆我们的系统就可以直接使用他们的系统,这个时候的做法如下:
第一步:修改以上配置文件:如红色部分
upstream localhost{
server 127.0.0.1:8083;
server 127.0.0.1:8082;
server 192.168.1.2:8084;
}第二步:在登陆成功页面放一个超链接地址为http://192.168.1.2:8084/B,用来链接到B项目,注意,这里一定要用端口哎访问,千万不能再使用如localhost/B的方式来访问
以上2步就可以实现单点登陆
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: