linux下nginx+tomcat+msm+memcached实现session共享(测试)

60 篇文章 0 订阅
测试机器:192.168.18.207, 192.168.18.208,192.168.18.209
软件配置:
192.168.18.207nginx/1.9.4 
192.168.18.208tomcat-7.0.64memcached-1.2.0
192.168.18.209tomcat-7.0.64memcached-1.2.0

系统版本:

点击(此处)折叠或打开

  1. [root@localhost ~]# cat /proc/version
  2. Linux version 3.10.0-229.el7.x86_64 (builder@kbuilder.dev.centos.org) (gcc version 4.8.2 20140120 (Red Hat 4.8.2-16) (GCC) ) #1 SMP Fri Mar 6 11:36:42 UTC 2015

1. 安装nginx
    SERVER:192.168.18.207   
    下载  nginx-1.9.4.tar.gz
    

点击(此处)折叠或打开

  1. tar -zxvf nginx-1.9.4.tar.gz
  2. ./configure --prefix=/usr/local/nginx --user=nginx --group=nginx --with-http_stub_status_module  --with-pcre=/tools/pcre-8.36/
  3. make && make install
     修改配置文件nginx.conf,添加upstream , proxy_pass等
     proxy_set_header X -Real - IP $remote_addr ; -- 这个在tomcat server.xml 中可以通过 %{X-Real-IP}i  获取客户端真实IP地址

点击(此处)折叠或打开

  1. upstream tomcat{
  2.         server 192.168.18.208:8080;
  3.         server 192.168.18.209:8080;
  4.     }
  5.     server {
  6.         listen 80;
  7.         server_name localhost;
  8.         #charset koi8-r;
  9.  
  10.         location / {
  11.             root html;
  12.             index index.html index.htm;
  13.             proxy_pass http://tomcat;
  14.             proxy_set_header X-Real-IP $remote_addr;
  15.             access_log logs/test.log ;
  16.         }
  17.         error_page 500 502 503 504 /50x.html;
  18.         location = /50x.html {
  19.             root html;
  20.         }
  21.     }
   启动Nginx
   ./nginx
2. 安装memcached
    SERVER:192.168.18.208/192.168.18.209
    下载 libevent-1.4.14b-stable.tar.gz , memcached-1.2.0.tar.gz
     libevent-1.4.14b-stable.tar.gz
    

点击(此处)折叠或打开

  1. ./configure --prefix=/usr
  2. make && make instll
    配置环境变量 export LD_LIBRARY_PATH=/usr/lib
    memcached-1.2.0.tar.gz
   

点击(此处)折叠或打开

  1. ./configure --prefix=/usr/local/memcached
  2. make && make install
    启动memcached
   ./memcached -d -uroot -p 11211 -m 20 -l 192.168.18.208 -c 200 -P /usr/local/memcached/mem.pid

3. 安装tomcat
    SERVER:192.168.18.208/192.168.18.209
    下载 apache-tomcat-7.0.64.tar.gz
    

点击(此处)折叠或打开

  1. tar -zxvf apache-tomcat-7.0.64.tar.gz
  2. mv apache-tomcat-7.0.64 /usr/local/tomcat

    修改配置文件conf/contex.xml
    添加
   

点击(此处)折叠或打开

  1. <Manager className="de.javakaffee.web.msm.MemcachedBackupSessionManager"
  2.     memcachedNodes="n1:192.168.18.208:11211,n2:192.168.18.209:11211"
  3.     failoverNodes="n1"
  4.     requestUriIgnorePattern=".*\.(ico|png|gif|jpg|css|js)$"
  5.     transcoderFactoryClass="de.javakaffee.web.msm.serializer.javolution.JavolutionTranscoderFactory"
  6.     />
    此处使用黏性session ,failoverNodes = "n1" 是指session优先存放在n2上。 209 配置 failoverNodes="n2"
   下载 msm 
    memcached-session-manager-1.6.1.jar
    memcached-session-manager-tc7-1.6.1.jar
    spymemcached-2.7.3.jar
    由于采用javolution方式序列化,还需
    msm-javolution-serializer-1.6.1.jar
    javolution-5.4.3.1.jar 
    全部拷贝到tomcat  lib下
    启动tomcat
4. 测试
    test.jsp 放到webapps/ROOT 下
    192.168.18.208

点击(此处)折叠或打开

  1. SessionID:<%=session.getId()%>
  2. <BR>
  3. SessionIP:<%=request.getServerName()%>
  4. <BR>
  5. SessionPort:<%=request.getServerPort()%>
  6. <%
  7. out.println("This is Tomcat Server 1");
  8. %>
192.168.18.209 改成 Server 2

测试结果:
1.第一次访问 http://192.168.18.207/test.jsp 页面显示如下:
SessionID:4CFBDB9CD9E7E19790F1567DD0BA84E7- n2
SessionIP:tomcat
SessionPort:80 This is Tomcat Server 1
说明nginx将请求转发至208 ,session 存在n2(209)上,持续刷新,只是server 改变 ,sessionid不变
2.关闭209 网络 systemctl stop network.service
SessionID:4CFBDB9CD9E7E19790F1567DD0BA84E7- n1
SessionIP:tomcat
SessionPort:80 This is Tomcat Server 1
如上 sessionID未变,但已切到n1
其他测试:
(1)关掉所有memcached 后,sessionid 还是保持不变,未测试能持续多少时间 。
(2)先启动tomcat ,不启动memcached  ,查看日志会发现会发现有持续请求连接memcached错误,启动memcached后 恢复正常。

安装问题:
1.centos7 防火墙采用的是firewall 需要关闭防火墙
    systemctl stop firewalld
    systemctl stop iptables
2.安装memcached 需要配置环境变量
   LD_LIBRARY_PATH=/usr/lib

本次测试参考了以下资料:
http://chenzhou123520.iteye.com/blog/1650212     
http://blog.csdn.net/shimiso/article/details/8979044  
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值