tomcat基于cookie的session共享

首先,安装 nginx + nginx_upstream_jvm_route

shell $> svn checkout http://nginx-upstream-jvm-route.googlecode.com/svn/trunk/ 

下载jvm-route补丁

然后,安装nginx时,需要加载jvm-route模块

shell $> ./configure --user=www --group=www --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module --add-module=/root/trunk

完成后,修改nginx配置文件:

upstream backend {
    server x.x.x.x:8080 srun_id=a;
   server x.x.x.x:8080 srun_id=b;
   jvm_route $cookie_JSESSIONID|sessionid reverse;
}

 

接着,在tomcat服务器上,修改tomcat配置文件server.xml:

<Engine name="Catalina" defaultHost="localhost" jvmRoute="a">

将不同的tomcat中的jvmRoute的值,改为nginx中对应的srun_id的值;

此时,已完成session共享的配置。

 

如何测试?

在tomcat的webapp/ROOT目录下面建立文件,输入要测试的index.jsp文件,内容如 下:

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%
%>
<html>
<head>
    </head>
      <body>
       88
       <!--server1 这里为 88 -->
        <br />
       <%out.print(request.getSession()) ;%>
       <!--输出session-->
        <br />
        <%out.println(request.getHeader("Cookie")); %>
      <!--输出Cookie-->
      </body>
</html>

 

两个tomcat一样只需要修改红色的部分。
打开浏览器输入网址查看,然后再打开另外的浏览器查看,看看是否固定在一个服务器上。
posted @ 2012-08-04 21:00  沉默爆破手  阅读(1018)  评论(0编辑  收藏  举报