关于Nginx负载均衡ip_hash的疑问

luke0202 发布于 2012/09/06 11:44
阅读 10K+
收藏 0

【领华为电脑包】容器化时代到来!跳转机分配问题终于“有救”了!>>>

       最近在学习nginx负载均衡的配置,关键的问题就是session的共享,我们项目中采用的是ip_hash,我在本机测试,Nginx+2个Tomcat,当关闭当前正在访问的Tomcat,Nginx将请求转发到另一个Tomcat后session丢失,需要重新登录,但我们项目中说当前正式服务器的几个Tomcat关闭其中一个正在访问的Tomcat,其他Tomcat却能获取到Session,所以想请教高手,到底是我的配置问题,还是我们项目中对session做了其他操作实现了session共享?Nginx的ip_hash是否支持两个Tomcat之间Session共享?谢谢!
加载中
0
红薯
红薯
ip_hash 跟你的 session 没有任何关系,它的目的是为了保证客户端的ip地址不变,请求就只送到固定的一个tomcat上
0
红薯
红薯

一旦涉及到负载均衡啊、集群等问题,最好最好是不用 session,一定要用的话,必须在应用服务器这一级来做 session 复制。

而 ip_hash 在实际的环境中用处不大,因为很多人上网都是多个ip来回变得

luke0202
luke0202
红薯大哥,那ip_hash是否支持两个Tomcat之间的session共享呢,也就是我说的关闭当前正在处理请求的Tomcat,另一个Tomcat是否能够取到Session?
0
luke0202
luke0202

引用来自“红薯”的答案

ip_hash 跟你的 session 没有任何关系,它的目的是为了保证客户端的ip地址不变,请求就只送到固定的一个tomcat上
谢谢,明白了。
0
老腊肉
老腊肉
这个请看我的博客
0
jay_
jay_

引用来自“呆阿呆”的答案

这个请看我的博客
我去  你能直接给个link不?
0
jay_
jay_

引用来自“红薯”的答案

一旦涉及到负载均衡啊、集群等问题,最好最好是不用 session,一定要用的话,必须在应用服务器这一级来做 session 复制。

而 ip_hash 在实际的环境中用处不大,因为很多人上网都是多个ip来回变得

我也遇到类似的问题,最开始是用apache,tomcat自己配Cluster进行同步

<Engine name="Catalina" defaultHost="localhost" jvmRoute="tomcat1">
<Engine name="Catalina" defaultHost="localhost" jvmRoute="tomcat2">


<Cluster className="org.apache.catalina.ha.tcp.SimpleTcpCluster" 
            channelSendOptions="6">
*****省略
基本能用,但是偶尔也有点问题,

之前看一哥们坐了个nginx均衡tomcat是根据session分发请求道固定tomcat的插件

https://code.google.com/p/nginx-upstream-jvm-route/wiki/nginx_with_tomcat


但是我觉得还是红薯说的“在应用服务器这一级来做”应该靠谱些,

红薯,你的意思是不是在应用层做session存取,不依赖tomcat配置,比如使用memcache存取session这种?






0
KingLiang
KingLiang
一旦涉及到负载均衡啊、集群等问题,最好最好是不用 session,一定要用的话,必须在应用服务器这一级来做 session 复制。  那我们要用什么方式来保存用户的信息
smallsun512
smallsun512
cache 呀
返回顶部
顶部