apache+tomcat实现session共享

tomcat1(worker2)配置

注释:

在之前搭建好的apache+tomcat负载均衡的基础上来配置session共享,之前是在root目录下,用rz命令上传一个7版本的tomcat,然后解压生成一个文件夹,改名为worker2,再拷贝一个为worker3

1、

进入这个页面,点击红框中的链接

弹出页面,在页面中找到如下的内容:

上图中红框里的内容要修改为虚机IP:192.168.2.199,其他默认保持不变

2、

然后在worker2里面开启<Cluster>集群设置,在worker2/conf目录下vi server.xml,找到如下的内容:

默认是注释的,不做任何修改,将上图里的代码复制到它的下面,然后保存并退出,配置完之后如下:

tomcat2(worker3)配置和tomcat1(worker2)配置一样,就是有几处需要修改和注意:

address需要改为虚机IP:192.168.2.199

port要和tomcat1(worker2)的端口不一样

配置完之后保存并退出,此处无截图(和上面的差不多)

在/worker2/webapps/test1/WEB-INF文件夹下用rz上传已经创建好的web.xml文件

加入标签

<distributable/>

直接加在</web-app>之前就可以了

worker3中重复worker2的操作

做tomcat集群必须需要这一步,否则用户的session就无法正常使用

注意事项

1、

castAddr="224.0.0.1"这主广播地址因此需要开启网卡组播功能

route
add -net 224.0.0.0 netmask 240.0.0.0 dev eth0(只运行一次)

2、

测试广播:

首先将tomcat-replication.jar上传到root目录下,在root目录下先后执行下面的命令:

java
-cp tomcat-replication.jar MCaster 224.0.0.1 45564 Terminal1

java
-cp tomcat-replication.jar MCaster 224.0.0.1 45564 Terminal2

如果不报错则能正常广播,执行结果如下图,应该是通了

测试集群及session同步:

在root/worker2/webapps/test1目录下创建一个ss.jsp文件

文件内容如下:

<%@
page contentType="text/html; charset=GBK" %>

<%@
page import="java.util.*" %>

<html><head><title>Cluster
App Test</title></head>

<body>

Server
Info:

<%

out.println(request.getLocalAddr()
+ " : " + request.getLocalPort()+"<br>");%>

<%

out.println("<br>
ID " + session.getId()+"<br>");

String
dataName = request.getParameter("dataName");

session.setAttribute("myname","session?");

if
(dataName != null && dataName.length() > 0) {

String dataValue = request.getParameter("dataValue");

session.setAttribute(dataName, dataValue);

}

out.print("<b>Session
P±?b>");

Enumeration
e = session.getAttributeNames();

while
(e.hasMoreElements()) {

String name = (String)e.nextElement();

String value = session.getAttribute(name).toString();

out.println( name + " = " + value+"<br>");

System.out.println( name + " = " + value);

}

%>

<form
action="index.jsp" method="POST">

3?<input type=text size=20 name="dataName">

<br>

?:<input type=text size=20 name="dataValue">

<br>

<input type=submit>

</form>

</body>

</html>

<%=request.getRealPath("")
%>

最后一句的意思是每次打开页面时,后台走的是哪个tomcat,把上面的代码粘贴到ss.jsp文件里,将

红框里的内容替换成ss.jsp,保存并退出

在root/worker3/webapps/test1目录下也创建一个ss.jsp文件,把上面的代码粘贴到ss.jsp文件里,将

红框里的内容替换成ss.jsp,保存并退出,保证两个tomcat下都有ss.jsp这个文件

重启两个tomcat,然后在Google浏览器中输入下面的地址:http://192.168.2.199/test1/ss.jsp

在浏览器中显示如下:

刷新页面,再显示如下:

ps:如果出不来上面的内容,肯定要排查apache和tomcat,尤其是apache,还是要杀掉所有进程在重新起,tomcat也要重新起,基本就可以搞定了

至此apache+tomcat负载均衡配置session共享成功

原文地址:https://www.cnblogs.com/laosun0204/p/8733814.html

时间: 2024-10-19 16:58:23

apache+tomcat实现session共享的相关文章

N个tomcat实现Session共享

集群之后比如我们有N个Tomcat,用户在访问我们的网站时有可能第一次请求分发到tomcat1下,而第二次请求又分发到了tomcat2下,有过web开发经验的朋友都知道这时session不一致会导致怎样的后果,所以我们需要解决一下多个tomcat之间session共享的问题. 修改index.jsp SessionID:<%=session.getId()%> SessionIP:<%=request.getServerName()%> SessionPort:<%=requ

生产-tomcat的session共享方案

生产-tomcat的session共享方案 在部署nginx+tomcat集群后,nginx采用负载均衡轮训模式,会出现访问时每个tomcat应用都会互相覆盖sessionID,导致sessionID不断变化,从而导致java一些功能实现不正常.作者查阅了不少文档,并且在测试环境和预生产环境进行各类测试,有两种方法可行. 应为目的只是实现session共享,杜绝session不断变化,所以解决方案越简单越好,本文属于实践文档,不会过多涉及原理和技术方面的东东,谷歌有详细相关技术介绍. 1    

CentOS7 下 Nginx + Tomcat 实现 Session 共享

在之情的文章中搭建的 centos7 + tomcat + nginx 的环境的基础上, 使用 redis 实现 tomcat 的 session 共享的问题. 一 : 安装 Redis 安装 gcc: yum install -y gcc-c++ 使用 FTP 服务器上传安装包,解压上传的 redis 的包 tar -zxvf redis-3.0.0.tar.gz 进入解压目录 redis-3.0.0 执行 make PREFIX=/usr/local/redis install 把 redi

Nginx + tomcat + Memcached(session共享)

Nginx + tomcat + Memcached(session共享) 实验拓扑 nginx   实现负载 tomcat   实现web功能 memcached 实现会话共享 安装Nginx [[email protected] ~]# yum -y install pcre pcre-devel [[email protected] ~]# tar -zxvf nginx-1.0.5.tar.gz [[email protected] ~]# cd nginx-1.0.5 [[email 

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

本文记录nginx+redis+tomcat实现session共享的过程 tomcat-redis-session-manager组件:https://github.com/jcoleman/tomcat-redis-session-manager tomcat-redis-sessoin-manager对tomcat的支持: (1) tomcat6:支持,要求jdk为1.6, 需要引入tomcat-redis-session-manager-1.2-tomcat-6.jar,不过现在已经处理不

高级运维(五):构建memcached服务、LNMP+memcached、使用Tomcat设置Session、Tomcat实现session共享

一.构建memcached服务 目标: 本案例要求先快速搭建好一台memcached服务器,并对memcached进行简单的添.删.改.查操作: 1> 安装memcached软件,并启动服务d 2> 使用telnet测试memcached服务 3> 对memcached进行增.删.改.查等操作 方案: 使用1台RHEL7虚拟机作为memcached服务器(192.168.4.5). 在RHEL7系统光盘中包含有memcached,因此需要提前配置yum源,即可直接使用yum安装,客户端测

构建memcached服务,Tomcat实现session共享

构建memcached服务 1.1 问题 本案例要求先快速搭建好一台memcached服务器,并对memcached进行简单的添.删.改.查操作: 安装memcached软件,并启动服务 使用telnet测试memcached服务 对memcached进行增.删.改.查等操作 1.2 方案 使用1台RHEL7虚拟机作为memcached服务器(192.168.4.5). 在RHEL7系统光盘中包含有memcached,因此需要提前配置yum源,即可直接使用yum安装,客户端测试时需要提前安装te

tomcat redis session共享(包含redis安全设置)

一.redis安装(我的环境centos6.5) 已安装可以跳过 1.下载:http://download.redis.io/releases/redis-2.8.19.tar.gz 2.编译源程序: 解压:tar zxvf redis-2.8.19.tar.gz tar zxvf redis-2.8.19.tar.gz cd redis-2.8.19/src 编译:如果没有gcc就执行一下 yum install gcc gcc-c++ -y make .......省略编译过程,内容太多了.

nginx+tomcat+php(tomcat的session共享设置)

名称:nginx+tomcat+redis+phpmail:[email protected]-------------------------------------------------------------------------------------设置ip 192.168.1.26    解析域名     www.egaosi.com 安装redis软件    用户设置  添加用户gaosilive,解决研发部门上传的问题  ssh的问题目录权限  /opt/tomcat1/we