Tomcat 集群使用redis共享session

有时咱们会遇到一个大点的项目,为了方便实现有些功能,咱们会把项目拆成不一样的独立web项目。但咱们在管理这些项目时,只有一个登录口,而后在其余项目取session来实现身份的验证。nginx

1,使用nginx作负载均衡git

<1>安装nginx sudo rpm -ivh nginx-1.4.2-1.el6.ngx.x86_64.rpm
github

<2>配置nginxweb

修改配置文件/etc/nginx/nginx.conf,并添加下面的内容:
redis

  1. http {  
  2. upstream tomcat  {  
  3.         server localhost:8080;  
  4.         server localhost:8081;  
  5.     }  
  6. include       /etc/nginx/mime.types;  
  7. default_type  application/octet-stream;

修改配置文件/etc/nginx/conf.d/default.conf并替换location部分的内容:tomcat

  1. location / {  
  2.     proxy_pass  http://tomcat;  
  3.   }

重启nginxsession

sudo service nginx restartapp

2,咱们要使用tomcat-redis-session-manager这样的第三方库,主页见:负载均衡

https://github.com/jcoleman/tomcat-redis-session-manageride

3,将commons-pool2-2.2.jar和jedis-2.5.2.jar依赖库放到tomcat下面的lib库下面

须要的jar包下载地址

http://download.csdn.net/detail/myude/9624998


4,复制多个tomcat修改端口号,并在修改每个Tomcat实例的context.xml配置文件:

在<Context></Context>标签中加入以下配置

  1. <Valve className="com.orangefunction.tomcat.redissessions.RedisSessionHandlerValve" />  
  2. <Manager className="com.orangefunction.tomcat.redissessions.RedisSessionManager"  
  3.          host="localhost"  
  4.          port="6379"  
  5.          database="0"  
  6.          maxInactiveInterval="60" />

5,安装redis并启动,安装教程网上不少就不赘述了

6,将应用部署到tomcat下面测试可否取得session

相关文章
相关标签/搜索