mgjj 发表于 2018-12-25 10:50:54

memcached服务搭建及session共享

  memcached+session共享
  

  目标:客户端通过nginx代理访问tomcat服务器,两台tomcat服务器共用memcached服务器,访问的sessionid存放在memcached服务器中,一台做主服务器,一台做备用服务器,当主服务器宕机,启用备用备用服务器
  环境准备:
  nginx服务器:192.168.1.1
  两台基于tomcat的服务器:192.168.1.2192.168.1.3
  两台memcached服务器:192.168.1.4192.168.1.5
  安装gcc*开发环境
  

  1.配置memcached服务(另一台做相同的配置)
  首先安装依赖库
  下载libevent-2.0版本的和memcached-1.4版本的
  # tar -zxf libevent-2.0.15-stable.tar.gz
  # cd libevent-2.0.15-stable
  # ./configure && make && make install
  安装memcached源码包
  # tar -zxf memcached-1.4.5.tar.gz
  # cd memcached-1.4.5
  # ./configure && make && make install
  由于依赖包安装的路径不能被系统读取到,所以写一个配置文件让系统能够识别安装的路径
  # vim /etc/ld.so.conf.d/libevent.conf
  /usr/local/lib/
  重新加载配置文件
  # ldconfig /etc/ld.so.conf.d/libevent.conf
  查看memcached帮助
  # /usr/local/bin/memcached -h
  启动服务
  # /usr/local/bin/memcached -u root -m 100M -n 10 -f 2 -d -vvv
  查看端口号是否启动成功
  # netstat -anput | grep 11211
  本机测试能否存取
  # telnet 192.168.1.4 11211
  Trying 192.168.1.4...
  Connected to 192.168.1.4 (192.168.1.4).
  Escape character is '^]'.
  set name 0 180 3//将key(name) value(jim)存入
  jim
  STORED
  get name// 取出name的值
  VALUE name 0 3
  jim
  END
  quit
  Connection closed by foreign host.
  服务能实现正常的存取功能,结束!
  

  2.配置tomcat服务器(另一个做相同的配置,jsp改变一下以示区别)
  

  下载 jdk-6u27-linux-i586.bin   apache-tomcat-6.0.32.tar.gz
  首先安装JDK
  # chmod +x jdk-6u27-linux-i586.bin
  # ./jdk-6u27-linux-i586.bin
  # cp jdk1.6.0_27/ /usr/local/jdk
  

  导入环境变量
  # vim /etc/bashrc
  文件末尾添加
  export   JRE_HOME=/usr/local/jdk
  export   JAVA_BIN=/usr/local/jdk/bin
  export   PATH=$JRE_HOME/bin:$PATH
  exportCLASSPATH=.:$JRE_HOME/lib/dt.jar:$JRE_HOME/lib/tools.jar
  exportJRE_HOMEJAVA_BINPATH   CLASSPATH
  

  重新加载配置文件
  # source /etc/bashrc
  # java -version
  java version "1.6.0_27"
  

  安装tomcat
  # tar -zxf apache-tomcat-6.0.32.tar.gz
  # cp apache-tomcat-6.0.32 /usr/local/tomcat
  # /usr/local/tomcat/bin/startup.sh
  

  查看端口是否启动
  # netstat -anput | grep 8080
  tcp      0      0 :::8080                     :::*                        LISTEN      18162/java
  

  访问主页
  # elinks --dump 192.168.1.2:8080
  

  添加一个jsp的动态网页
  # vim /usr/local/tomcat/webapps/ROOT/test.jsp
  
  
  
  
  tomcatA 43
  
  
  
  # elinks --dump 192.168.1.2:8080/test.jsp
  8CD662E4983B212941DEFE18F0907EE4-memA
  

  tomcatB 43
  tomcat服务器已经能成功访问!
  

  

  3.添加tomcat连接memcached的接口
  

  下载以下包
  kryo-1.04.jar                        memcached-session-manager-tc6-1.5.1.jar
  kryo-serializers-0.9.jar             minlog-1.2.jar
  memcached-2.5.jar                  msm-kryo-serializer-1.5.1.jar
  memcached-session-manager-1.5.1.jarreflectasm-1.01.jar
  

  将以上所有包复制到tomcat的库目录中
  # cp * /usr/local/tomcat/lib/
  

  修改tomcat的配置文件
  # vim /usr/local/tomcat/conf/context.xml
  在添加指明memcached两个主机的IP地址及端口号和备用memcached服务器
  
  

  重启tomcat使配置生效
  # /usr/local/tomcat/bin/shutdown.sh
  # /usr/local/tomcat/bin/startup.sh
  

  4.配置nginx服务器
  修改配置文件
  # vim /usr/local/nginx/conf/nginx.conf
  worker_processes1;
  events {
  worker_connections1024;
  }
  http {
  include       mime.types;
  default_typeapplication/octet-stream;
  sendfile      on;
  keepalive_timeout65;
  upstream"webgroup"{
  server   192.168.1.2:8080;
  server   192.168.1.3:8080;
  }
  server {
  listen       80;
  server_namelocalhost;
  location / {
  # root   html;
  # indexindex.html index.htm;
  proxy_passhttp://webgroup;
  }
  error_page   500 502 503 504/50x.html;
  location = /50x.html {
  root   html;
  }
  }
  }
  重新启动nginx服务
  # /usr/local/nginx/sbin/nginx -s stop
  # /usr/local/nginx/sbin/nginx
  

  5.客户端测试
  

  浏览器测试
  http://192.168.1.1/test.jsp
  刷新网页发现sessionid不变,证明memcached已经生效
  

  将主memcached服务器关闭,测试备用服务器
  # ifconfig eth0 | head -2
  eth0      Link encap:EthernetHWaddr 00:0C:29:FD:5B:B1
  inet addr:192.168.118.3Bcast:192.168.118.255Mask:255.255.255.0
  # netstat -anput | grep 11211
  tcp      0      0 0.0.0.0:11211               0.0.0.0:*                   LISTEN      7775/memcached
  # pkill -9 memcached
  # netstat -anput | grep 11211
  

  客户端再测试
  http://192.168.1.1/test.jsp
  刷新网页发现sessionid不变,证明备用memcached已经生效
  




页: [1]
查看完整版本: memcached服务搭建及session共享