sfdfef 发表于 2015-10-13 09:03:39

Tomcat结合memcached实现sessio共享

Tomcat 使用memcached 实现session共享

系统环境:
Centos6.5 x86_64
同台服务器上使用两个tomcat实例

安装jdk1.7
安装tomcat8.0.27
安装memcached

1
yum install yum install java-1.7.0-openjdk.x86_64 java-1.7.0-openjdk-devel.x86_64 memcached -y





下载并安装tomcat8

1
2
3
4
5
wget http://mirrors.hust.edu.cn/apache/tomcat/tomcat-8/v8.0.27/bin/apache-tomcat-8.0.27.tar.gz
安装:
tar zxvf apache-tomcat-8.0.27.tar.gz
cp -r apache-tomcat-8.0.27 /usr/local/tomcat1
cp -r apache-tomcat-8.0.27 /usr/local/tomcat2





使用nginx做为代理

下载并安装:

1
2
3
4
5
6
7
wget http://tengine.taobao.org/download/tengine-2.1.1.tar.gz

tar zxvf tengine-2.1.1.tar.gz
cd tengine-2.1.1
./configure
make
make install




安装默认目录为:/usr/local/nginx
配置Nginx 这里就不多介绍了,之前文件也有详细介绍,请查阅^_^

下面来配置下tomcat连接memcached,存放session id

需要下载的文件,都是写这篇博文时的最新版本,下载的文件与tomcat的版本要对应。我这里使用的tomcat8所以下载的是tc8的版本
memcached-session-manager-1.8.3.jar   

memcached-session-manager-tc8-1.8.3.jar
msm-javolution-serializer-1.8.3.jar

以上三个文件下载地址:http://repo1.maven.org/maven2/de/javakaffee/msm/

javolution-5.5.1.jar
下载地址:http://central.maven.org/maven2/javolution/javolution/5.5.1/javolution-5.5.1.jar

spymemcached-2.10.3.jar
下载地址:https://spymemcached.googlecode.com/files/spymemcached-2.10.3.jar#这个可能需要翻墙,,,附近件中给^_^

下载完成后反这些jar包放在 /usr/local/tomcat1/lib目录下,就是你的tomcat 目录下的lib目录

修改配置文件server.xml

大约在如下位置:

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

      <Host name="localhost"appBase="webapps"
            unpackWARs="true" autoDeploy="true"
          xmlValidation="false" xmlNamespaceAware="false" >
<!-- 添加下面标红这些 --!>
            <Context reloadable="false" path=""> 这里也可以设置为别名地址类似如下:<Context reloadable="true" path="/虚拟地址" docBase="真实路径">
                  <Manager className="de.javakaffee.web.msm.MemcachedBackupSessionManager"
                                  memcachedNodes="n1:memcache地址:11211"
                                  sticky="false"
                                  sessionBackupAsync="false"
                                  lockingMode="auto"
                                  requestUriIgnorePattern=".*\.(ico|png|gif|jpg|css|js)$"
                                  transcoderFactoryClass="de.javakaffee.web.msm.JavaSerializationTranscoderFactory"
                  />
            </Context>

      <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
               prefix="localhost_access_log" suffix=".txt"
               pattern="%h %l %u %t &quot;%r&quot; %s %b" />

      </Host>
</Engine>

在另一个tomcat上也是如此的配置即可
下面是一个测试文件test.jsp放在tomcat的网页路径下,

内容如下:


SessionID:<%=session.getId()%>
<BR>
SessionIP:<%=request.getServerName()%>
<BR>
SessionPort:<%=request.getServerPort()%>
<%
out.println("This is Tomcat Server 111111!");   #这里区别两个tomcat的内容需要做下相应的修改
%>



页: [1]
查看完整版本: Tomcat结合memcached实现sessio共享