session 共享-tomcat集群session复制

一.环境准备(windows下nginx+tomcat,linux同理)

1.nginx一台

2.tomcat 2台(端口号不同,我这里是8081和8082)

3.web项目一个(我这里项目名tomcat-session)

二.详细配置

1.nginx

在nginx的conf文件下找到nginx.conf将以下位置改成

session 共享-tomcat集群session复制_第1张图片
image.png
2.tomcat

在tomcat的conf文件夹下找到server.xml配置文件进行端口配置(此处2台tomcat 分别是8081和8082)和集群配置。

找到Engine标签

image.png

在下面添加如下代码

session 共享-tomcat集群session复制_第2张图片
image.png

          

          
            
            

            
            
            
            
            
          

          
          

          

          
          
        
3.web项目(tomcat-session)

3.1在2台tomcat web项目的web.xml中加入此属性


session 共享-tomcat集群session复制_第3张图片
image.png

3.2在2台tomcat web项目中index.jsp页面中加入如下代码

项目1:
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%
    String path = request.getContextPath();
    String basePath = request.getScheme() +"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>

  
    111
  
  
  SessionID:<%=session.getId()%>
  
SessionIP:<%=request.getServerName()%>
SessionPort:<%=request.getServerPort()%> <% out.println("This is Tomcat Server 1111"); %> 项目2: <%@ page contentType="text/html;charset=UTF-8" language="java" %> <% String path = request.getContextPath(); String basePath = request.getScheme() +"://"+request.getServerName()+":"+request.getServerPort()+path+"/"; %> 111 SessionID:<%=session.getId()%>
SessionIP:<%=request.getServerName()%>
SessionPort:<%=request.getServerPort()%> <% out.println("This is Tomcat Server 2222"); %>

3.3 添加虚拟路径(此处注意必须要加,因为在ngnix中配置轮训时是通过ip+端口号访问的)


session 共享-tomcat集群session复制_第4张图片
image.png

三.开始访问

使用nginx配置中的server_name 端口号默认80进行访问即:localhost

项目1:
session 共享-tomcat集群session复制_第5张图片
image.png
项目2
session 共享-tomcat集群session复制_第6张图片
image.png

从图中可以看出项目1和项目2的sessionID是相同的,因此tomcat的session复制到此完成。

四.参考文章

http://blog.csdn.net/fengwind1/article/details/52163096
http://blog.csdn.net/kkgbn/article/details/52192218

你可能感兴趣的:(session 共享-tomcat集群session复制)