nginx+tomcat7+memcached服务架构实现session共享

一、Nginx安装

  详见前文:http://www.cnblogs.com/yixiwenwen/p/3574097.html

二、memcached安装和启动

  详见前文:http://www.cnblogs.com/yixiwenwen/p/3574137.html

三、配置Nginx实现tomcat服务的负载均衡,利用memcached服务实现session共享

1.修改nginx的配置文件nginx.conf,路径:%NGINX_HOME%/nginx/conf/nginx.conf

....
http {
    include       mime.types;
    default_type  application/octet-stream;

    sendfile        on;
    
    keepalive_timeout  65;

    gzip  on;
    
    upstream web.test.com {
    	  server 192.168.1.183:8081;
    	  server 192.168.1.183:8082;
    	  server 192.168.1.183:8084;
    }

    server {
        listen       81;
        server_name  web.test.com;
        #server_name  localhost;

        charset utf-8;

        location / {
            root   html;
            index  index.html index.htm;
            proxy_pass   http://web.test.com;
            proxy_set_header X-Real-IP  $remote_addr;
            client_max_body_size 100m;
        }
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }
    }
}

2.配置tomcat,下载所需的jar包并放入到每个tomcat的lib文件夹下,文件列表如下,具体jar包见附件:

couchbase-client-1.2.2.jar
javolution-5.4.3.1.jar
memcached-session-manager-1.6.4.jar
memcached-session-manager-tc7-1.6.4.jar
msm-javolution-serializer-1.6.4.jar
msm-kryo-serializer-1.6.4.jar
msm-xstream-serializer-1.6.4.jar
spymemcached-2.10.2.jar
修改tomcat配置文件,让tomcat结合memcached实现session共享,在%TOMCAT_HOME%/conf/context.xml配置文件中增加如下配置:

<Manager className="de.javakaffee.web.msm.MemcachedBackupSessionManager"   
<span style="white-space:pre">	</span> memcachedNodes="n1:localhost:11211"   
	 requestUriIgnorePattern=".*\.(png|gif|jpg|css|js)$"   
	 sessionBackupAsync="false"   
	 sessionBackupTimeout="100"   
	 transcoderFactoryClass="de.javakaffee.web.msm.serializer.javolution.JavolutionTranscoderFactory"   
 <span style="white-space:pre">	</span> copyCollectionsForSerialization="false" />
在tomcat的root文件夹中的index.jsp中加入如下配置,以方便测试session共享,注意:需将index.jsp文件中的<%@ page session="true" %>改为true:

SessionID:<%=session.getId()%>
<br>
SessionIP:<%=request.getServerName()%>
<br>
SessionPort:<%=request.getServerPort()%>
<%out.println("This is Tomcat Server 111111!");%>
<br>

4.测试结果

在自己电脑本地的host文件中加入ip映射,可以直接访问web.test.com进行测试,如果nginx使用的是默认端口的话,不需要输入端口号,如果不是的话需要加上端口号,例如我的配置:web.test.com:81。


当再次刷新时:


发现sessionID没有变化,但是已经切换到另一台服务器下了。可以将一个tomcat服务关掉,然后再测试,同样可以实现session共享。至此session共享配置完成。

资源下载地址:http://download.csdn.net/detail/zz87250976/9490573



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值