Tomcat7+redis 实现session共享

版本:

Tomcat7

Jdk7

Redis2.8.2

Nginx1.9.7

对于web应用分布式部署做负载均衡的话,目前市场上比较火的nginx,因为其高性能而受到青睐,本测试文档就采用nginx。

Niginx的下载安装配置启动

下载地址:http://nginx.org/ ,将下载的nginx zip包解压至e:/nginx

配置nginx.conf

打开e:/nginx/conf/nginx.conf

 

简单配置如下:

 

http {

upstream site{

                   server localhost:8090;

                   server localhost:8080;

                   server localhost:8088;

         }

......

}

 location / {

                            proxy_pass http://site;

       }

注:红色的均为新添加的, serverweb应用的地址

Redis下载安装启动

下载redis

地址:https://github.com/MSOpenTech/redis/releases

解压至e/redis

Dos窗口进入redis根目录启动redis

输入命令redis-server.exe redis.windows.conf

 

因为用github上提供的编译好的jar包,测试始终无法实现共享,不知别人是否也是这样,所以这里采用源码编译。

编译tomcat-redis-session-manager源码

下载地址:https://github.com/jcoleman/tomcat-redis-session-manager

下载zip包,解压

 

新建mavenproject

将解压后的src/main/java中的文件拷贝到新建的maven工程将源码(src/main/java)拷贝至新建maven工程的主代码包(src/main/java)中

添加依赖jar包,pom.xml 如下所示

<projectxmlns="http://maven.apache.org/POM/4.0.0"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0http://maven.apache.org/xsd/maven-4.0.0.xsd">

  <modelVersion>4.0.0</modelVersion>

  <groupId>com.session</groupId>

  <artifactId>tomcat-redis-session</artifactId>

  <version>0.0.1-SNAPSHOT</version>

  <dependencies>

    <dependency>

       <groupId>org.apache.tomcat</groupId>

       <artifactId>tomcat-catalina</artifactId>

       <version>7.0.27</version>

    </dependency>

    <dependency>

       <groupId>redis.clients</groupId>

       <artifactId>jedis</artifactId>

       <version>2.7.2</version>

    </dependency>

   

  </dependencies>

  <build>

    <plugins>

       <plugin>

           <groupId>org.apache.maven.plugins</groupId>

           <artifactId>maven-compiler-plugin</artifactId>

           <version>3.0</version>

           <configuration>

              <encoding>utf-8</encoding>

              <source>1.7</source>

              <target>1.7</target>

           </configuration>

       </plugin>

    </plugins>

  </build>

</project>

maven项目打包成tomcat-redis-session-0.0.1.SNAPSHOT.jar

下载commons-pool2-2.3.jarjedis-2.7.2.jar

配置Tomcat

准备3份tomcat(本测试tomcat7)

将上面的3个jar包放入lib目录

配置context.xml文件

<WatchedResource>WEB-INF/web.xml</WatchedResource>后

加入

<Valve className="com.orangefunction.tomcat.redissessions.RedisSessionHandlerValve"/>

         <ManagerclassName="com.orangefunction.tomcat.redissessions.RedisSessionManager"

        host="localhost"

        port="6379"

        database="0"

        maxInactiveInterval="60" />

className的值为tomcat-redis-session-0.0.1.SNAPSHOT.jar中的class文件

Host默认localhost

Port默认6379redis启动后的端口

3tomcatcontext.xml配置完全一样

 

测试

新建一个web测试工程

在index.jsp页面中加入如下代码:

<%=request.getSession().getId()%>

<%=request.getRemoteHost() %>

<%=request.getRemotePort() %>

<%=request.getLocalAddr() %>

<%=request.getLocalPort() %>   

 

启动redis

启动nginx

启动3个tomcat(同一台机器改端口号,本实例在同一台机器上测试)

本测试工程名springMvcWeb

分别输入:

http://localhost:8080/springMvcWeb/

http://localhost:8088/springMvcWeb/

http://localhost:8090/springMvcWeb/

效果:

输入:http://localhost/springMvcWeb/(nginx默认80端口)

不停的刷新

会看到端口号不停的改变,sessionId却始终不变

测试成功!!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值