q456123 发表于 2018-11-29 11:05:15

基于tomcat集群会话保持

基于tomcat集群会话保持
  环境:
        一台nginx:ip 172.17.13.136
        一台tomcat1:ip 172.17.13.134
        一台tomcat2:ip 172.17.13.135
  一、tomcat上操作:
  1、下载jdk并安装
  lftp 172.17.0.1
  cd pub/Sources/7.x86_64/jdk
  mget jdk-8u144-linux-x64.rpm
  rpm -ivh jdk-8u144-linux-x64.rpm
  注意:安装完成后,都要配置JAVA_HOME环境变量,指向java的安装路径;
  vim /etc/profile.d/java.sh
  export JAVA_HOME=/usr/java/jdk1.8.0_144
  export JRE_HOME=$JAVA_HOME/jre
  export PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$PATH
  chmod +x /etc/profile.d/java.sh
  source /etc/profile.d/java.sh
  查看版本:Java -version
http://s1.运维网.com/images/20171212/1513069991385114.png
  2、下载tomcat并解压:
  (1)、从官网下载tomcat二进制安装包(http://tomcat.apache.org/)
  #wget http://mirrors.tuna.tsinghua.edu.cn/apache/tomcat/tomcat- 8/v8.5.11/bin/apache-tomcat-8.5.11.tar.gz
  或者ftp上下载(lftp 172.17.0.1;cd /pub/Sources/7.x86_64/tomcat/;mget apache-tomcat-7.0.78.tar.gz )
  (2)、解压
  tar xvf apache-tomcat-7.0.78.tar.gz -C /usr/local/
  查看解压后的目录:
  ll /usr/local/ | grep tomcat
  3、为方便管理,创建软链接,或者直接mv改名。
  ln -s /usr/local/apache-tomcat-7.0.78/ /usr/local/tomcat
  4、PATH环境配置:
  vim /etc/profile.d/tomcat.sh
      export CATALINA_BASE=/usr/local/tomcat
      export PATH=$CATALINA_BASE/bin:$PATH
  赋予执行权限:
  chmod +x /etc/profile.d/tomcat.sh
  加载环境配置:
  source /etc/profile.d/tomcat.sh
  5、启动tomcat
  catalina.sh start
  查看tomcat是否正常启动(ss -ntl 查看端口8080)
http://s1.运维网.com/images/20171212/1513070039349943.png
  6、测试是否正常:curl -I 127.0.0.1:8080
http://s1.运维网.com/images/20171212/1513070048916971.png
  通过浏览器访问:http://172.17.13.135:8080
                  http://172.17.13.134:8080
  可访问到tomcat页面如下
http://s1.运维网.com/images/20171212/1513070056799183.png
  
  实现会话保持:
  1、vim server.xml
  #jvmRoute表示唯一表示本机,所以不同主机的是不同的。这个参数非必须
  
  
  
  #多播地址应该是224~239,同一组里的多播地址相同
  #address为本机能够向外通信的地址
  
  
  
  
  
  
  
  
  
  
  2、vim /usr/local/tomcat/conf/web.xml给应用程序加标签,使其能够实现复制。在web-app字段加 。
  将web.xml放在对应的项目目录下:
  mkdir /usr/local/tomcat/webapps/test/WEB-INF
  cp /usr/local/tomcat/conf/web.xml /usr/local/tomcat/webapps/test/WEB-INF/
  重启服务:catalina.sh stop
  catalina.sh start
  如果不能启动,查看日志logs/catalina.out信息如下(不能加入到组播) :http://s1.运维网.com/images/20171212/1513070107385414.png
  那么添加到达组播的路由即可:route add -host 228.14.14.4 dev eth0
  二、Nginx服务器上操作:
  1、vim /etc/nginx/nginx.conf
      upstream tomcat {            在http段配置
  server 172.17.13.136:8080;
  server 172.17.13.137:8080;
  }
        
  index index.jsp index.html;         server段
  
      location /{
     proxy_pass http://tomcat;
     }
http://s1.运维网.com/images/20171212/1513070131776967.png
  2、测试页面:在tomcat1和tomcat2上编辑测试页面,tomcat1内容为A,tomcat2内容为B
  Vim /usr/local/tomcat/webapps/test/index.jsp
  
  
  TomcatB
  
  TomcatB
  
  
  Session ID
  
  
  
  
  Created on
  
  
  
  
  
  3、访问nginx服务器进行验证:http://172.17.13.136/test/
  可发现两台机器显示的session ID相同
http://s1.运维网.com/images/20171212/1513070142834084.png
http://s1.运维网.com/images/20171212/1513070148747623.png
  三、tomcat结合memcached实现seesion共享:
  在所有的tomcat节点上:两台主机既做tomcat也做memcached
  下载五个jar包,将jar包放在/usr/local/tomcat/lib:
  1、cd /usr/local/tomcat/lib;
  lftp 172.17.0.1
  >cd /pub/Sources/7.x86_64/msm
  >mget javolution-5.4.3.1.jar
      memcached-session-manager-1.8.3.jar
      memcached-session-manager-tc7-1.8.3.jar
      msm-javolution-serializer-1.8.3.jar
      spymemcached-2.11.1.jar
  >exit
  2、在host段定义一个用于测试的context容器,并在其中创建一个会话管理器。
     vim server.xml   删除之前的那一大段cluster配置,再在host中加入下面一段
     
     
     
  重启服务:
      catalina.sh stop
      catalina.sh start
  3、下载memcached,启动服务
     yum install memcached -y
     systemctl start memcached
  4、测试页面及测试效果同上



页: [1]
查看完整版本: 基于tomcat集群会话保持