mrbear 发表于 2018-11-4 09:52:00

tomcat、redis session共存配置

  1、首先安装jdk再安装Tomcat(jdk1.70 Tomcat7.0.40)
  名称      IP            端口 tomcat JDK
  tomcat1 10.7.0.193 8080 7.0.40 1.7.0_25
  tomcat2 10.7.0.192 8080 7.0.40 1.7.0_25
  # tar -zxf jdk-7u111-linux-x64.tar.gz -C /usr/local/java/
  # vim /etc/profile
export JAVA_HOME=/usr/local/java/jdk1.8.0_111  
export JRE_HOME=/usr/local/java/jdk1.8.0_111/jre
  
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib:$CLASSPATH
  
export PATH=$JAVA_HOME/bin:$PATH
  # source /etc/profile
  然后可以看到Java命令了
  # java -version
  2、安装Tomcat
  # tar -zxf apache-tomcat-7.0.73.tar.gz -C /usr/local/
  # cd /usr/local
  # ln -sv apache-tomcat-7.0.73/ tomcat
  # ls bin/
  bootstrap.jar       commons-daemon-native.tar.gz    digest.sh         startup.battool-wrapper.scatalina.bat         configtest.bat             setclasspath.bat      startup.sh            version.bat
  catalina.sh            configtest.sh                               setclasspath.sh         tomcat-juli.jar         version.sh
  #里面全部是一些.sh的脚本和.jar的Java归档文件;Tomcat就是 用Java写的所以启动时会调用一些Java库,.bat为Windows的批处理脚本,用于windows启动时调用,其中catalina.sh为核心脚本
  ls conf/
  Catalina         catalina.propertieslogging.propertiestomcat-users.xml
  catalina.policy    context.xml          server.xml          web.xml
  #其中server.xml为主配置文件;
  #tomcat-users.xml为用户认证文件,Tomcat启动后会将这个文件读进内存中完成账号和密码的检测认证,所以这个文件的安全性很重要;#web.xml为Tomcat默认的应用程序部署描述符,一个web应用程序所谓的部署就是将它放在Tomcat某一个context某一个host能够访问到的路径下,及将web应用程序所依赖的类装载进JVM的过程;
  #context.html默认为上下文提供的配置文件
  #catalina.pro[erties 用来定义应用程序自身属性的(启动JVM要定义许多属性),如所使用的内存大小,所使用的字符串缓冲池的大小,你的server loader加载器是什么,等等
  #Catalina.policy用来定义Tomcat自身的安全和资源授权策略,如定义通过互联网访问时,哪些资源用户可以访问哪些资源用户不能访问;哪些资源能被装载,哪些资源不能被装载等等
  #logging.pro[erties 用来定义你的日志级别,日志文件的路径等等
  一般来说如果你不定义服务器自身的属性的话,只需修改.xml的文件
  为Tomcat提供init脚本
  # vim /etc/rc.d/init.d/tomcat
#!/bin/sh  
# Tomcat init script for Linux.
  
#
  
# chkconfig: 2345 96 14
  
# description: The Apache Tomcat servlet/JSP container.
  
export JAVA_OPTS='-Xms64m -Xmx128m' #定义启动时堆内存最小64M,最大128M
  
JAVA_HOME=/usr/local/java/jdk1.8.0_111 #Java的路径
  
CATALINA_HOME=/usr/local/apache-tomcat-7.0.73 #Tomcat的路径
  
export JAVA_HOME CATALINA_HOME #将Java和tomcat的路径输出为环境变量
  
exec $CATALINA_HOME/bin/catalina.sh $* #执行这个脚本
  # service tomcat stop
  # service tomcat start
  3、安装redis、Nginx
  Nginx安装
  tar zxvf nginx-1.8.0.tar.gz
   cd nginx-1.8.0
  ./configure && make && make install
  /usr/local/nginx/nginx
  redis安装
  tar -zxvf redis-3.0.3.tar.gz
  make
  mkdir -p /usr/local/redis/bin
  mkdir -p /usr/local/redis/etc
  mkdir -p /usr/local/redis/var
  cp redis-benchmarkredis-check-aof redis-cli redis-server redis-check-dump/usr/local/redis/bin/
  cp ../redis.conf/usr/local/redis/etc/
  #修改配置文件,一般需要把daemonize no改为 daemonize yes其他的看需要修改。
  /usr/local/redis/bin/redis-server /usr/local/redis/etc/redis.conf
  #测试 /usr/local/redis/bin/redis-cli
  redis> set name asd123
  OK
  redis> get name
  "asd123"
  成功
  4、配置session共存
  修改nginx.conf加上:
upstream backend {  
      server 10.7.0.193:8080 max_fails=1 fail_timeout=10s;
  
      server 10.7.0.192:8080 max_fails=1 fail_timeout=10s;
  
    }
  修改nginx.conf的location成
location / {  
      root   html;
  
      indexindex.html index.htm;
  
      proxy_pass http://backend;
  
   }
  重启Nginx
  下载tomcat-redis-session-manager相应的jar包,主要有三个:(官网可能有问题需再下载tomcat-juli-adapters.jar和tomcat-juli.jar两个包,可以使用http://download.csdn.net/detail/qinxcb/8279761下的tomcat-redis-session-manager.jar)
wget https://github.com/downloads/jcoleman/tomcat-redis-session-manager/tomcat-redis-session-manager-1.2-tomcat-7-Java-7.jar  
wget http://central.maven.org/maven2/redis/clients/jedis/2.5.2/jedis-2.5.2.jar
  
wget http://central.maven.org/maven2/org/apache/commons/commons-pool2/2.0/commons-pool2-2.0.jar
  修改两tomcat的context.xml:
  
   
  
    WEB-INF/web.xml
  
   
  
   
  
   
  
   
  

  

  

  在tomcat/webapps/test放一个index.jsp
  

  
TomcatA
  

  

  
   
  
      
  
      Session ID
  
      
  
      
  
      
  
      Created on
  
      
  
   
  
   
  

  

  
sessionID:
  

  
SessionIP:
  

  
SessionPort:
  

  通过访问http://10.7.0.194/test/

  Session>  Created on1487208175588
  sessionID:4D948D3222B49F03A6696FF2550B4764
  SessionIP:backend
  SessionPort:80 This is Tomcat Server 2222

  Session>  Created on1487208175588
  sessionID:4D948D3222B49F03A6696FF2550B4764
  SessionIP:backend
  SessionPort:80 This is Tomcat Server 1111
  可以看到虽然Server从1111变为2222,但session的创建时间没有变化,这就完成了session共享。


页: [1]
查看完整版本: tomcat、redis session共存配置