session 共享-spring-整合redis

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

1.nginx一台

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

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

二.详细配置

1.nginx

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


session 共享-spring-整合redis_第1张图片
image.png
2.tomcat

在tomcat的conf文件夹下找到server.xml配置文件进行端口配置,分别配置成8081和8082,和nginx中相同。

session 共享-spring-整合redis_第2张图片
image.png
添加虚拟路径
session 共享-spring-整合redis_第3张图片
image.png
3.web项目(tomcat-session)

在build.gradle文件中添加依赖(maven同理)

compile group: 'org.springframework.session', name: 'spring-session-data-redis', version: '1.3.0.RELEASE'

在WEB-INF下创建spring-session.xml文件




    

    
        
        
    

    
        
        
        
    

项目加载的时候加载spring-session.xml,在web.xml中加载它。并添加过滤器。(注意,在所有的过滤器之前)

   
        contextConfigLocation
        /WEB-INF/spring-session.xml
    

   
        springSessionRepositoryFilter
        org.springframework.web.filter.DelegatingFilterProxy
    
    
        springSessionRepositoryFilter
        /*
    

在index.jsp中添加如下代码(首页能访问的到)

项目1:
 
  SessionID:<%=session.getId()%>
  
SessionIP:<%=request.getServerName()%>
SessionPort:<%=request.getServerPort()%> <% out.println("This is Tomcat Server 1111"); %> 项目2: SessionID:<%=session.getId()%>
SessionIP:<%=request.getServerName()%>
SessionPort:<%=request.getServerPort()%> <% out.println("This is Tomcat Server 222"); %>

三.启动访问

启动redis,(先启动resdis)和2台tomcat,nginx。

1,直接访问2个项目

项目1:


session 共享-spring-整合redis_第4张图片
image.png

项目2:


session 共享-spring-整合redis_第5张图片
image.png

redis 2次访问后分布查看结果
session 共享-spring-整合redis_第6张图片
image.png

通过上述图片可以发现两次的结构是一样的。

2.通过nginx访问,(先使用flushall命令清空redis)使用nginx中server_name : localhost 访问

分发请求到项目1

image.png

分发请求到项目2

session 共享-spring-整合redis_第7张图片
image.png

redis:

image.png

同样通过上述图片可以看出也实现了session的共享。
四.参考文献
http://blog.csdn.net/xiaozhaorui/article/details/51326833
http://www.10tiao.com/html/591/201702/2247483939/1.html

你可能感兴趣的:(session 共享-spring-整合redis)