分享web开发知识

注册/登录|最近发布|今日推荐

主页 IT知识网页技术软件开发前端开发代码编程运营维护技术分享教程案例
当前位置:首页 > 软件开发

apache+tomcat实现session共享

发布时间:2023-09-06 01:48责任编辑:沈小雨关键词:apachetomcat

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"这主广播地址因此需要开启网卡组播功能

routeadd -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>ClusterApp Test</title></head>

<body>

ServerInfo:

<%

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

<%

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

 StringdataName = 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>SessionP±?b>");

 Enumeratione = 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);

 }

%>

 <formaction="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共享成功

apache+tomcat实现session共享

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

知识推荐

我的编程学习网——分享web前端后端开发技术知识。 垃圾信息处理邮箱 tousu563@163.com 网站地图
icp备案号 闽ICP备2023006418号-8 不良信息举报平台 互联网安全管理备案 Copyright 2023 www.wodecom.cn All Rights Reserved