`

通过sessionid转发web请求

阅读更多

1--安装nginx-0.7.65
1-0 下载包
jvm-route安装包下载命令:
svn checkout http://nginx-upstream-jvm-route.googlecode.com/svn/trunk/ nginx-upstream-jvm-route-read-only

nginx当前稳定版下载路径
wget  http://nginx.org/download/nginx-0.7.65.tar.gz

1-1 解压缩 nginx-0.7.65.tar.gz 到 /usr/develop/yagnwr
1-2 解压缩 jvm-route.zip 到/usr/develop/yagnwr
 还可以从 网站上下载svn checkout http://nginx-upstream-jvm-route.googlecode.com/svn/trunk/ nginx-upstream-jvm-route-read-only
1-3 切换到 /usr/develop/yagnwr/nginx-0.7.65
1-4 patch -p0 < /usr/develop/yagnwr/jvm-route/jvm_route.patch
1-5 ./configure --prefix=/usr/mpsp/nginx-0.7.65  --add-module=/home/yangwr/soft/jvm-route/  --with-http_stub_status_module
1-6 make
1-7 make install

2--配置文件
rm -f /usr/mpsp/nginx-0.7.65/nginx.conf
vi /usr/mpsp/nginx-0.7.65/nginx.conf

3--修改nginx.conf--针对tomcat
 服务器10.110.5.151上的nginx.conf负载做如下配置
 upstream newjboss {
          #ip_hash;
          server 10.110.5.151:9081 max_fails=3 fail_timeout=30s srun_id=a;
          server 10.110.5.152:9081 max_fails=3 fail_timeout=30s srun_id=b;
          jvm_route $cookie_JSESSIONID|sessionid reverse;
       }
      
  服务器10.110.5.151上的nginx.conf负载做如下配置
       upstream newjboss {
          #ip_hash;
          server 10.110.5.152:9081 max_fails=3 fail_timeout=30s srun_id=b;
          server 10.110.5.151:9081 max_fails=3 fail_timeout=30s srun_id=a;
          jvm_route $cookie_JSESSIONID|sessionid reverse;
       }

4--修改tomcat配置/usr/mpsp/newjboss/conf/server.xml
10.110.5.151修改为
<Engine name="Catalina" defaultHost="localhost" jvmRoute="a">

10.110.5.152修改为
<Engine name="Catalina" defaultHost="localhost" jvmRoute="b">

5--重启nginx,jbossWeb

 

注:nginx在cdn,F5后端的情况下,根据ip分发session的策略失效,此时需要根据sessionid来转发,

比如151服务器产生的sessionid以a结尾,服务器152产生的sessionid以b结尾,resin服务器则以a,b开头。

1
0
分享到:
评论

相关推荐

    tomcat+nginx+redis 实现sessionId共享 实例

    这个实例“tomcat+nginx+redis 实现sessionId共享”旨在教你如何在使用Tomcat作为应用服务器、Nginx作为反向代理服务器的环境中,利用Redis来实现跨服务器的会话(sessionId)共享。这对于在分布式系统中保持用户...

    session会话管理

    该 Session ID 会被存储在用户的浏览器中,并在后续的请求中被传递回服务器端。服务器端会根据该 Session ID 找到对应的会话信息,以便实现用户会话的管理。 Session 的 API Session 的 API 主要包括以下几个方面...

    (转)讲解各种session

    - Sticky Sessions:负载均衡器会记住用户请求的特定服务器,将后续请求转发给同一服务器,避免Session冲突。 - Session集中存储:使用共享的Session存储(如数据库或缓存),所有服务器都从同一位置读写Session。 ...

    43_说说你们的分布式session方案是啥?怎么做的?.zip

    2. Session粘滞(Sticky Session):通过负载均衡器将具有相同Session ID的请求始终转发到同一台服务器,减少了数据同步的需求。但这种方法在服务器故障时可能导致Session丢失。 3. Session集中存储:将Session数据...

    跨域共享session (实现http跳转https 共享session)

    3. **代理服务器**:设置一个代理服务器,所有跨域请求都通过代理服务器转发,服务器端保持session不变,前端只需与代理服务器通信即可。 4. **WebSocket**:WebSocket协议本身支持跨域,可以用来传输session信息,...

    nginx+tomcat+redis完成session共享

    使用`proxy_pass`指令将请求转发到正确的Tomcat服务器,并配置`proxy_set_header`以传递session ID。 4. **测试和优化**:部署应用程序并进行测试,确保在不同服务器之间切换时session能正确共享。同时,可能需要...

    java web 应用对象存储管理简介

    当服务器创建Session对象后,会自动生成一个唯一的标识符——SessionID,并通过Cookie机制将其发送至客户端,确保在后续请求中能够准确识别并加载对应的Session对象。 Session对象的生命周期比Cookie更为灵活,可...

    iframe 跨域访问session

    我们可以在`iframe`加载完成后,通过`postMessage`将`session ID`传递给父页面,然后由父页面在需要时向服务器发送请求。 5. **Window.name属性**:由于`window.name`在不同源之间不会被重置,我们可以将`session ...

    session共享插件

    过滤器将请求中的session ID转发给`MemcachedSessionManager`,由它负责在memcached中查找或存储session数据。 4. **处理session的生命周期**:在应用中,需要确保正确处理session的创建、更新、销毁等生命周期事件...

    nginx反向代理导致session失效的问题解决

    这个问题通常发生在使用Nginx作为前端服务器,将用户请求转发到多个后端应用服务器的环境中。在这样的架构中,Session管理变得复杂,因为Nginx并不直接处理Session,而是依赖于后端应用服务器的Session管理机制。 ...

    .NET session共享

    它基于Cookie(默认情况下)来跟踪用户状态,通过唯一SessionID将用户请求与服务器上的特定Session数据关联起来。 2. **Session共享的挑战**:在分布式部署中,由于用户请求可能会被分配到不同的服务器,每个服务器...

    session共享

    之后,客户端在每次请求时都会携带这个Session ID,服务器通过ID找到对应的Session数据,实现对用户状态的追踪。 2. **Session的生命周期**:Session有一定的存活时间,称为Session Timeout。如果在设定的时间内...

    Nginx session丢失问题处理解决方法

    每次用户请求时,浏览器都会携带这个Session ID,服务器通过这个ID识别用户身份并维护会话状态。 2. 反向代理与Session丢失:在Nginx作为反向代理服务器的场景下,用户是通过Nginx向后端服务器(如Tomcat)发起请求...

    Session详解

    每当用户发起请求,服务器通过某种标识符(通常是Cookie中的session ID)来查找对应的Session数据,从而实现状态的连续性和个性化服务。Session机制相比Cookie提供了更大的数据存储能力,更高的安全性和灵活性。 ##...

    java web考试复习

    7. **JSP动作**:`forward`动作用于将请求转发到另一个页面,而`include`动作则用于在当前页面中嵌入另一个页面的内容。 8. **JavaBean使用**:在JSP中使用JavaBean,需要指定正确的类路径和作用域。正确示例是`...

    redis的session共享

    如果Web服务需要处理与用户状态相关的请求,可以考虑将Session信息作为请求头的一部分传递,或者使用Token(如JWT)来替代Session,实现无状态的API设计。 总结来说,利用Redis实现Session共享可以有效地解决分布式...

    nginx tomcat memcached 集群 session共享

    之后,无论用户请求哪个Tomcat实例,Nginx都会根据session ID查找对应的session数据,从而保持用户状态的一致性。 5. **配置细节**:在Nginx的配置文件(nginx.conf)中,需要定义一个upstream,指定Tomcat服务器的...

    jsp中存取session值简单介绍

    当用户再次发送请求时,浏览器会把之前存储的唯一ID发送到服务器,服务器通过这个ID找到对应的session,从而获取之前存储的信息。 在JSP中,可以使用request和session两个内置对象来操作session对象。request对象...

    Nginx+Tomcat+Memcached集群Session共享

    后续对该用户的请求,Nginx会检查请求头中的Session ID,并将其路由到拥有该Session数据的Tomcat服务器。这样,无论用户请求哪个服务器,都能保持Session的一致性。 为了实现Nginx、Tomcat和Memcached之间的通信,...

    session共享jar包(三个)

    在session共享的场景下,Nginx可以通过配置实现session的粘滞会话,即同一个用户的请求总是被转发到同一台后端服务器。 3. **Redis**:是一个开源的,高性能的键值数据库,适合存储临时数据,如session。它支持网络...

Global site tag (gtag.js) - Google Analytics