nginx+tomcat+redis完成session共享

环境准备:实验环境有限,都安装在一台机器上了

tomcat7 两个

nginx1.8

redis3.2.8

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


名称


IP


端口


tomcat版本


JDK


tomcat-1


192.168.1.133


8081


7.0.69


1.7.0_79


tomcat-2


192.168.1.133


8082


7.0.69


1.7.0_79

nginx.conf配置:

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

修改两个tomcat的conf/context.xml:

- <Context>
-
-     <!-- Default set of monitored resources -->
-     <WatchedResource>WEB-INF/web.xml</WatchedResource>
-
-     <!-- Uncomment this to disable session persistence across Tomcat restarts -->
-     <!--
-     <Manager pathname="" />
-     -->
-
-     <!-- Uncomment this to enable Comet connection tacking (provides events
-          on session expiration as well as webapp lifecycle) -->
-     <!--
-     <Valve className="org.apache.catalina.valves.CometConnectionManagerValve" />
-     -->
-   <!-- 添加你的redis信息(根据实际配置做相应修改) -->
-   <Valve className="com.orangefunction.tomcat.redissessions.RedisSessionHandlerValve" />
-   <Manager className="com.orangefunction.tomcat.redissessions.RedisSessionManager"
-    host="localhost"
-    port="6379"
-    database="0"
-    maxInactiveInterval="60" />
- </Context>

在tomcat/webapps/test放一个index.jsp(index.jsp 做测试使用)

- <%@ page language="java" %>
- <html>
-   <head><title>TomcatA</title></head>
-   <body>
-
-     <table align="centre" border="1">
-       <tr>
-         <td>Session ID</td>
-         <td><%= session.getId() %></td>
-       </tr>
-       <tr>
-         <td>Created on</td>
-         <td><%= session.getCreationTime() %></td>
-      </tr>
-     </table>
-   </body>
- </html>
- sessionID:<%=session.getId()%>
- <br>
- SessionIP:<%=request.getServerName()%>
- <br>
- SessionPort:<%=request.getServerPort()%>
- <%
- //为了区分,第二个可以是222
- out.println("This is Tomcat Server 1111");
- %>

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

分别打开三个jar包,确实没有这个类,解决可以参考:

http://blog.csdn.net/qinxcb/article/details/42041023

这里说的就是lib下的包有问题,没下载对,刚刚上面的包已经经过测试了;

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

刷新:

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

最后感谢原作者,原文链接:http://blog.csdn.net/grhlove123/article/details/48047735

时间: 2024-12-28 17:14:01

nginx+tomcat+redis完成session共享的相关文章

Nginx+Tomcat+Redis实现session共享

通过Nginx作为前端的负载,把请求分发到后端的Tomcat服务器上,提高并发数:但是单纯的通过Nginx的ip_hash负载是很多问题的.只要用户一切换网络或者后端Tomcat主机宕机session就失效: 架构图: 基本环境    主机名 IP地址    安装软件    用途    Nginx   192.168.122.10 nginx-1.8.1.tar.gz  负载均衡    Tomcat1 192.168.122.12 apache-tomcat-7.0.68.tar.gz.jdk-

100513、nginx+tomcat集群+session共享(linux)

第一步:linux中多个tomcat安装和jdk安装(略) 第二步:nginx安装,linux中安装nginx和windows上有点不同也容易出错,需要编译,这里做介绍 一.安装依赖 gcc openssl-fips-2.0.2.tar.gz zlib-1.2.7.tar.gz pcre-8.21.tar.gz 下载linux版本的安装包,如果不下载安装包,可以在线安装命令: yum install gcc-c++ yum install -y pcre  pcre-devel yum inst

nginx+tpmcat+redis实现session共享

版本:nginx nginx-1.8.0.tar.gztomcat apache-tomcat-7.0.78.tar.gzredis  redis-stable 4.0.1安装包下载地址:链接:http://pan.baidu.com/s/1gfQqpPL 密码:xwpvPS:redis在此用的是单节点,实际应用redis应该是集群形式 安装redis 网上教程有很多,最后需要注意的是配置redis外网访问 设置redis外网访问配置文件中找到bind 127.0.0.1注释掉再查找protec

nginx+tomcat7+redis实现session共享(单点redis)

本文主要介绍redis的安装和配置.nginx和tomcat已经写过一篇很详细的文档.请参考:http://francis905.blog.51cto.com/3048056/1716740 实验环境:3台虚拟机(pc1:nginx1.6.3,pc2:tomcat7+redis2.6.13,pc3:tomcat7+redis2.6.13) 实验目的:通过redis实现session的共享 [注]棕色为必须做的 其他作为资料延伸 cd /usr/local/src tar zxvf redis-2

【电商】nginx+tomcat+memcached实现session共享集群

在分布式多tomcat web集群环境下,首先要解决的是session的共享问题,一般的实现思路有: (1) session复制:多tomcat之间进行session的同步,集群中的tomcat存储相同的session信息 (2) 共享session存储:将session集中存储在同一个地方,如redis/memcached,甚至DB.tomcat本身的内存中并不存储session (3) session粘性:其实session粘性并不是session共享的方案,而是多tomcat的集群方案,配

Nginx+IIS+Redis 处理Session共享问题 1

最近遇到一个棘手的问题,微信公众平台的前端站点session老是丢失,我们是走的微信网页授权,授权后获取用户openid,丢失后没有openid后续的操作全白搭了,因为没了openid只能判断为客户不是在微信端访问进行提示, 然后接连收到客服中心回馈问题,不过全是安卓客户端的ios的完全没有(真邪门了),哎,秉着有问题就要解决的态度,开搞吧! 我们前端有六台Windows server 2012,部署的IIS站点,用A10做的硬负载,之前openid都是作为url参数各个page进行传递的,领导

nginx+tomcat+memcached实现session共享

一.工作原理及原理图<img class="alignnone wp-image-31" src="http://119.29.25.60/wp-content/uploads/2016/04/图片1.bmp" alt="图片1" width="342" height="254" />工作原理        Tomcat中自带缓存功能.Memcached时一个集中式缓存器,可以利用tomcat和

tomcat+redis实现session共享缓存

一:linux下redis安装 1.wget http://download.redis.io/releases/redis-3.0.6.tar.gz 2.tar xzf redis-3.0.6.tar.gz 3.rm -rf redis-3.0.6.tar.gz 4.cd redis-3.0.6 5.make 这个过程需要等一小会 6.cd src 7.   ./redis-server 注意:默认要在redis的src目录下启动 ./redis-server 以上redis安装完毕 二:to

nginx+tomcat+memcached构建session共享集群

一.安装配置tomcat 配置前说明: 系统为centos7 m1.xsllqs.com地址为192.168.1.107 c1.xsllqs.com地址为192.168.1.114 c2.xsllqs.com地址为192.168.1.113 安装tomcat需要配合JDK使用,JDK有oracle JDK和open JDK两种 oracle JDK8的下载地址:http://www.oracle.com/technetwork/cn/java/javase/downloads/jdk8-down