前言:
眼前我们对“tomcatredissessionmanager”可能比较注重,姐妹们都想要学习一些“tomcatredissessionmanager”的相关内容。那么小编同时在网摘上搜集了一些有关“tomcatredissessionmanager””的相关内容,希望小伙伴们能喜欢,姐妹们快快来学习一下吧!说明
Tomcat集群中,为了在多机环境保持登陆会话,常见的有两种解决方式:
浏览器与Tomcat机器绑定,即为浏览器一直会与同一台Tomcat进行会话
Tomcat机器使用同一session,即使浏览器每次请请求的Tomcat不同,但是session-id值是相同的
Tomcat集群借助于Redis实现Session共享,就是使用第二种方式,将所有Tomcat的seesion值存储在同一个Redis上面,从而保证所有的Tomcat使用相同session值
实现方式
方式1:Tomcat-redis-session-manager
支持环境:redis2+Tomcat6/7(代码2012年后停止更新)
GitHub:
安装参考文章:
方式2:TomcatClusterRedisSessionManager
支持环境:redis3+Tomcat7/8
GitHub:
安装配置步骤(以方式2为例)
1. 安装Nginx
Ngnix无需增加任何第三方模块,直接官方下载进行编译安装即可,之后配置Nginx的负载均衡
nginx.conf配置文件
worker_processes 1;error_log logs/error.log;#error_log logs/error.log notice;#error_log logs/error.log info;#pid logs/nginx.pid;events { worker_connections 1024;}http { include mime.types; default_type application/octet-stream; log_format main '$remote_user [$time_local] $http_x_Forwarded_for $remote_addr $request ' '$http_x_forwarded_for ' '$upstream_addr ' 'ups_resp_time: $upstream_response_time ' 'request_time: $request_time'; access_log /usr/local/nginx-1.9.8/logs/access.log main; sendfile on; keepalive_timeout 65; #gzip on; upstream myserver { server 192.168.124.131:8080 weight=4; server 192.168.124.132:8080 weight=3; } server { listen 80; server_name localhost; location / { root html; index index.html index.htm; client_max_body_size 1000m; proxy_pass ; } #error_page 404 /404.html; # redirect server error pages to the static page /50x.html error_page 500 502 503 504 /50x.html; location = /50x.html { root html; } }}
2. 安装Redis
如下载redis-3.2.9.tar.gz,之后进行编译安装,并设置密码
redis配置文件的requirepass 密码可设置密码
3. 安装Tomcat
在多台机器上分别解压安装Tomcat,如apache-tomcat-7.0.68.tar.gz
4. 安装配置TomcatRedisSessionManager
4.1 下载TomcatRedisSessionManager
根据Tomcat版本选择TomcatRedisSessionManager的版本,如TomcatRedisSessionManager-1.0.zip,下载地址
4.2 放置JAR包
将TomcatRedisSessionManager-1.0.zip里面的所有的jar包分别放到Tomcat的lib目录中
commons-logging-1.2.jar,commons-pool2-2.4.1.jar,jedis-2.8.0.jar,TomcatRedisSessionManager-1.0.jar
4.3 修改配置文件
RedisDataCache.properties中配置Reids的地址和密码,之后放在Tomcat的config目录下
修改Tomcat的conf/context.xml,增加如下:
<Valve className="com.r.tomcat.session.management.RequestSessionHandlerValve"/><Manager className="com.r.tomcat.session.management.RequestSessionManager"/>
修改Tomcat的conf/web.xml,如下:
session失效时间,根据项目实际情况进行设置<session-config> <session-timeout>600<session-timeout><session-config>
注意:官方文档中说还要修改catalina.properties,实际使用发现并不需要
5. 验证安装
至此,已经完成了整个环境的安装配置,我们可以在所有的Tomcat的webapps中部署同一个项目,启动所有的Tomcat
验证安装:
浏览器访问部署的项目,然后进行登陆
通过redis客户端可以看到在数据库生成了session值
观察在有效的session时间内,会不会退出登录