`
zql3315
  • 浏览: 23770 次
  • 性别: Icon_minigender_1
  • 来自: 安徽
社区版块
存档分类
最新评论

nginx+tomcat+redis完成session共享

阅读更多

本文记录nginx+redis+tomcat实现session共享的过程

 

nginx安装:http://blog.csdn.net/grhlove123/article/details/47834673

 

redis安装:http://blog.csdn.net/grhlove123/article/details/47783471

 

准备两个tomcat,修改相应的端口

 

 

名称 IP 端口 tomcat版本 JDK
tomcat1 10.10.49.23 8080 7.0.40 1.7.0_25
tomcat2 10.10.49.15 8081 7.0.40 1.7.0_25

 

修改nginx.conf加上:

[html] view plain copy
  1. upstream backend {  
  2.     server 10.10.49.23:8080 max_fails=1 fail_timeout=10s;  
  3.     server 10.10.49.15:8081 max_fails=1 fail_timeout=10s;  
  4. }  

修改nginx.conf的location成

[html] view plain copy
  1. location / {  
  2.     root   html;  
  3.     index  index.html index.htm;  
  4.     proxy_pass http://backend;  
  5.  }  


启动nginx。

下载tomcat-redis-session-manager相应的jar包,主要有三个:

 

wget https://github.com/downloads/jcoleman/tomcat-redis-session-manager/tomcat-redis-session-manager-1.2-tomcat-7-java-7.jar
wget http://central.maven.org/maven2/redis/clients/jedis/2.5.2/jedis-2.5.2.jar
wget http://central.maven.org/maven2/org/apache/commons/commons-pool2/2.0/commons-pool2-2.0.jar

 

下载完成后拷贝到$TOMCAT_HOME/lib中

 

修改两tomcat的context.xml:

 

[html] view plain copy
  1. <Context>  
  2.   
  3.     <!-- Default set of monitored resources -->  
  4.     <WatchedResource>WEB-INF/web.xml</WatchedResource>  
  5.   
  6.     <!-- Uncomment this to disable session persistence across Tomcat restarts -->  
  7.     <!-- 
  8.     <Manager pathname="" /> 
  9.     -->  
  10.   
  11.     <!-- Uncomment this to enable Comet connection tacking (provides events  
  12.          on session expiration as well as webapp lifecycle) -->  
  13.     <!-- 
  14.     <Valve className="org.apache.catalina.valves.CometConnectionManagerValve" /> 
  15.     -->  
  16.   
  17.   <Valve className="com.orangefunction.tomcat.redissessions.RedisSessionHandlerValve" />  
  18.   <Manager className="com.orangefunction.tomcat.redissessions.RedisSessionManager"  
  19.    host="10.10.49.20"  
  20.    port="6379"  
  21.    database="0"  
  22.    maxInactiveInterval="60" />  
  23. </Context>  


在tomcat/webapps/test放一个index.jsp

[html] view plain copy
  1. <%@ page language="java" %>  
  2. <html>  
  3.   <head><title>TomcatA</title></head>  
  4.   <body>  
  5.    
  6.     <table align="centre" border="1">  
  7.       <tr>  
  8.         <td>Session ID</td>  
  9.         <td><%= session.getId() %></td>  
  10.       </tr>  
  11.       <tr>  
  12.         <td>Created on</td>  
  13.         <td><%= session.getCreationTime() %></td>  
  14.      </tr>  
  15.     </table>  
  16.   </body>  
  17. </html>  
  18. sessionID:<%=session.getId()%>   
  19. <br>   
  20. SessionIP:<%=request.getServerName()%>   
  21. <br>   
  22. SessionPort:<%=request.getServerPort()%>   
  23. <%   
  24. //为了区分,第二个可以是222  
  25. out.println("This is Tomcat Server 1111");   
  26. %>    

 

启动tomcat,发现有异常:com.orangefunction.tomcat.redissessions.RedisSessionHandlerValve 类找不到

 

分别打开三个jar包,确实没有这个类,

所以从https://github.com/jcoleman/tomcat-redis-session-manager直接下载源码
     发现源码里面存在相应的类,同时源码(tomcat-redis-session-manager)依赖了tomcat其他的包:tomcat-juli.jar
     而tomcat默认是没有这些包的,从http://mirrors.cnnic.cn/apache/tomcat/tomcat-7/v7.0.57/bin/extras/ 下载tomcat-juli-adapters.jar和tomcat-juli.jar两个包,放在apache-tomcat-7.0.57\lib目录下,同时将tomcat-juli.jar放在apache-tomcat-7.0.57\bin目录下

     同时将编译tomcat-redis-session-manager的源码,通过相应的依赖包common-pool2.2,jedis以及tomcat-juli.jar编译,

并打成自己的jar包

 

 

 

通过访问http://10.10.49.20/test/

 


 

刷新:

 

可以看到虽然Server从1111变为2222,但session的创建时间没有变化,这就完成了session共享。

 

文章转载地址:http://blog.csdn.net/grhlove123/article/details/48047735

分享到:
评论

相关推荐

    Nginx+tomcat+redis

    - **session共享**:在分布式环境中,Redis可以作为session存储,解决跨服务器的session共享问题,确保用户会话的一致性。 - **消息队列**:Redis支持发布/订阅模型,可以作为简单消息队列,用于异步处理任务或...

    nginx+tomcat8.5+redis完成session共享

    可以通过`nginx+tomcat+redis完成session共享.txt`中的指南进行详细的配置和测试步骤。 通过以上步骤,我们能够实现一个高效且可靠的session共享环境,解决因负载均衡导致的session失效问题。这不仅可以提升用户...

    nginx+tomcat集群+redis实现session共享

    目前只支持tomcat8.5,其它版本的tomcat还没测试,自己配置过很多nginx+tomcat集群+redis实现session共享的系统,经过仔细总结得出这些,可以说是知识的结晶,欢迎大家来下载,不好的地方可以多提,有问题看到的话会...

    nginx+tomcat8.+redis__session__单点登录、会话共享.zip

    6. `nginx+tomcat+redis完成session共享.txt`:这可能是实现方案的详细步骤或者配置示例,包括Nginx的配置和Tomcat的Session Manager配置。 7. `readme.txt`:通常包含有关压缩包内容的基本信息和使用指南。 实现...

    redis缓存服务器Nginx+Tomcat+redis+MySQL实现session会话共享

    "redis缓存服务器Nginx+Tomcat+redis+MySQL实现session会话共享"的主题旨在探讨如何利用这些技术组件来实现这一目标。以下是相关知识点的详细说明: **Redis**:Redis是一个高性能的键值数据存储系统,常用于做缓存...

    nginx+tomcat6+redis实现session共享Jar文件

    "nginx+tomcat6+redis实现session共享"是一个常见的解决方案,旨在提高系统的可扩展性和高可用性。这个配置允许多个Tomcat服务器之间共享用户session,避免了用户在切换服务器时需要重新登录的问题。下面将详细介绍...

    nginx+Redis+tomcat实现session共享jar

    包含的jar包如下: commons-pool2-2.0.jar jedis-2.5.2.jar tomcat-juli-adapters.jar tomcat-juli.jar tomcat-redis-session-manager1.2.jar

    nginx+tomcat+redis集群部署环境

    nginx+tomcat+redis集群部署环境,包括nginx tomcat redis及集群部署所需jar包,jedis-2.6.1.jar,commons-pool2-2.2.jar,tomcat-redis-session-manager1.2.jar 具体步骤可以参见我的博文

    Keepalived+nginx+tomcat+redis_session_share

    本案例通过搭建一个基于`Keepalived`、`nginx`、`Tomcat`及`Redis`的服务集群来实现应用服务的高可用性和负载均衡,并通过`Redis`实现了`Tomcat`间的`Session`共享功能。 ### 一、环境简介 - **服务器配置**:两台...

    Nginx+Tomcat+Redis搭建高性能负载均衡集群Session共享

    超详细Nginx+Tomcat+Redis搭建高性能负载均衡集群Session共享搭建说明,按文档步骤可轻松搭建并实现session共享

    Nginx+Tomcat+Redis集群和session共享所有jar包

    Nginx+Tomcat+Redis实现应用服务器集群负载均衡和Session共享所需要的所有jar包,包括如下jar包:commons-logging-1.2.jar,commons-pool2-2.6.0.jar,jedis-2.9.0.jar,tomcat-juli-7.0.90.jar,tomcat-redis-...

    nginx+tomcat+redis集群配置session共享(下载运行即可)+详细说明

    本实例基于nginx+tomcat+redis的集群实现,实现session的复制。压缩包内含两个tomcat+一个nginx服务器+64位windows版的redis+说明文档,下载即可运行,详细步骤可以参考文档,从此告别集群盲区

    Nginx+Tomcat+Redis实现session共享

    Nginx+Tomcat+Redis实现session共享,通过Nginx作为前端的负载,把请求分发到后端的Tomcat服务器上,提高并发数;但是单纯的通过Nginx的ip_hash负载是很多问题的。只要用户一切换网络或者后端Tomcat主机宕机session就...

    nginx+tomcat7+jdk1.7+redis--jar.rar

    综上所述,"nginx+tomcat7+jdk1.7+redis--jar.rar"的解压内容用于搭建一个高效的Web服务架构,通过Nginx分发请求,利用Redis实现跨服务器的Session共享,提升系统的可扩展性和性能。在实际操作中,需要根据具体环境...

    Tomcat7+Redis+Session 负载之后session 共享 tomcat jar包

    标题 "Tomcat7+Redis+Session 负载之后session 共享 tomcat jar包" 涉及的是在使用Nginx做负载均衡时,如何通过集成Redis来实现Tomcat7服务器之间的Session共享,从而确保用户在不同服务器之间切换时仍然能够保持...

    男孩的天职nginx+tomcat集群+redis存储session

    男孩的天职nginx+tomcat集群+redis存储session 下载的是一个pdf文件,文件里面有视频演示下载地址,以及jdk1.8 tomcat8 nginx 1.8安装笔记,绝对可以用 nginx反向代理tomcat集群,请求轮训给集群的tomcat,session...

    nginx2.8.1+tomcat7+redis1.8 session共享

    nginx2.8.1+tomcat7+redis1.8 session共享,windows环境下,jar包都包含,直接运行即可,把redis服务,tomcat两个,niginx负载平衡,session共享,参考别人的例子,自己总结的。

    Nginx+Tomcat+Redis实现负载均衡过程中session所需架包

    在构建高性能、高可用性的Web应用系统时,通常会采用Nginx作为反向代理服务器,Tomcat作为Java应用服务器,而Redis则用于处理session共享问题。本篇将详细讲解如何在Nginx+Tomcat+Redis环境中实现负载均衡,并讨论...

Global site tag (gtag.js) - Google Analytics