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一样只需要修改红色的部分。
打开浏览器输入网址查看,然后再打开另外的浏览器查看,看看是否固定在一个服务器上。