如何实现Spring Session与Nginx反向代理的集成步骤?
- 内容介绍
- 文章标签
- 相关推荐
本文共计582个文字,预计阅读时间需要3分钟。
概述:Spring Session 配置,如果是Servlet的Web应用,会自动集成jdbc、redis、Hazelcast、MongoDB等。
Session 概述:
2.1 分布式项目的Session问题
在分布式项目中,如果客户端给服务端发送了一个请求,在nginx做负载均衡的情况下,可能会出现以下问题:一概述
springsession 配置,如果是sevlet的web应用后会自动集成 jdbc ,redis,Hazelcast,MongoDB
二session概述
2.1 分布式项目的session问题
在分布式项目中如果客户端给服务端发送了一个请求,在nginx做反向代理的情况下,第一个请求可能到达tomcat1,此时tomcat1就会创建一个session然后将响应给客户端;同理客户端再次发送一个请求,然后nginx又做了一次反向代理,此时的请求可能到达tomcat2,此时tomcat2会建立一个session响应给客户端;那么问题就产生了,同一个客户端发了2个请求,结果造成两次会话的数据不一致。
2.2主流的解决方案
针对2.1分布式session共享问题,当代主流的解决方案是使用redis做session以达到session共享的目的。请求达到不同的tomcat之后都会往同一个redis中写数据, 当tomcat响应数据的时候就会往同一个redis中读数据 以前我们需要手动的将tomcat获得的session数据存到redis,响应的时候再去redis中取数据。现在springsession会自动帮我们的数据从tomcat中同步到redis,或者自动的从redis中取数据。
本文共计582个文字,预计阅读时间需要3分钟。
概述:Spring Session 配置,如果是Servlet的Web应用,会自动集成jdbc、redis、Hazelcast、MongoDB等。
Session 概述:
2.1 分布式项目的Session问题
在分布式项目中,如果客户端给服务端发送了一个请求,在nginx做负载均衡的情况下,可能会出现以下问题:一概述
springsession 配置,如果是sevlet的web应用后会自动集成 jdbc ,redis,Hazelcast,MongoDB
二session概述
2.1 分布式项目的session问题
在分布式项目中如果客户端给服务端发送了一个请求,在nginx做反向代理的情况下,第一个请求可能到达tomcat1,此时tomcat1就会创建一个session然后将响应给客户端;同理客户端再次发送一个请求,然后nginx又做了一次反向代理,此时的请求可能到达tomcat2,此时tomcat2会建立一个session响应给客户端;那么问题就产生了,同一个客户端发了2个请求,结果造成两次会话的数据不一致。
2.2主流的解决方案
针对2.1分布式session共享问题,当代主流的解决方案是使用redis做session以达到session共享的目的。请求达到不同的tomcat之后都会往同一个redis中写数据, 当tomcat响应数据的时候就会往同一个redis中读数据 以前我们需要手动的将tomcat获得的session数据存到redis,响应的时候再去redis中取数据。现在springsession会自动帮我们的数据从tomcat中同步到redis,或者自动的从redis中取数据。

