julley 发表于 2018-11-26 11:13:43

(二)apache+tomcat集群+session会话同步

  一、 环境说明
   在一台服务器上安装一个apache作为web server,多个tomcat作为应用的容器,此时我们便可以使用apache来作为一个调度员将用来发来的请求发送到不同的tomcat。apache和tomcat1安装到192.168.0.3,tomcat2安装到192.168.0.4
  拓扑:

  二、 原理
   tomcat 为一个jsp的容器,apache为一个web server,两者之间通信通过worker进行(由Tomcat使用Server.xml文件中Connector的标签来定义其端口和协议),通过 mod_jk的模块(由web服务器像apache、iis等使用)和Web Server通信。整个过程其实就是让apache的httpd.conf文件调用mod_jk.conf,mod_jk.conf调用workers.properties,最后配置虚拟主机。
  文件说明
  mod_jk.conf
  主要定义mod_jk模块的位置以及mod_jk模块的连接日志设置,还有定义worker.properties文件的位置。
  worker.properties
  定义worker的参数,主要是连接tomcat主机的地址和端口信息。如果Tomcat与apache不在同一台机器上,或者需要做多台机器上tomcat的负载均衡只需要更改workers.properties文件中的相应定义即可。
  三、 安装软件
  1.先安装了所需的程序库
  yum -y install gcc gcc-c++ autoconf libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel libxml2 libxml2-devel zlib zlib-devel glibc glibc-devel glib2 glib2-devel bzip2 bzip2-devel ncurses ncurses-devel curl curl-devel
  2.Apache 安装:
  tar zxvf httpd-2.2.8.tar.gz
  cd httpd-2.2.8
  ./configure --prefix=/usr/local/apache2 --enable-modules=so --enable-so
  make && make install
  3.JDK的安装
  chmod 755 jdk-6u26-linux-i586-rpm.bin
  ./jdk-6u26-linux-i586-rpm.bin
  mv /usr/java/jdk1.6.0_26 /usr/local/
  到/usr/bin目录下,把原用的java,javac文件删除:
  rm -rf /usr/bin/{java,javac}
  在/usr/bin 下建立 软连接 java
  ln -s /usr/local/jdk1.6.0_26/bin/java /usr/bin/java
  ln -s /usr/local/jdk1.6.0_26/bin/javac /usr/bin/javac
  javac -version
  为了方便下在的工作建立两个软链接:
  ln -s /usr/local/jdk1.6.0_26//usr/local/jdk
  ln -s /usr/local/jdk1.6.0_26/jre /usr/local/jre
  4.Tomcat的安装
  tar -zxvf apache-tomcat-7.0.16.tar.gz
  mv apache-tomcat-7.0.16 /usr/local/tomcat
  5.设置环境变量:
  JAVA_HOME=/usr/local/jdk
  export JAVA_HOME
  JRE_HOME=/usr/local/jre
  export JRE_HOME
  CLASSPATH=/usr=/usr/local/tomcat/lib/:/usr/local/jdk/lib:/usr/local/jre/lib
  export CLASSPATH
  PATH=$PATH:/usr/local/tomcat/bin/:/usr/local/apache/bin:/usr/local/jdk/bin:/usr/local/jre/bin
  export PATH
  TOMCAT_HOME=/usr/local/tomcat
  export TOMCAT_HOME
  6.JK 安装 (整合apache tomcat)
  tar zxvf tomcat-connectors-1.2.27-src.tar.gz
  cd tomcat-connectors-1.2.27-src/native
  ./configure --with-apxs=/usr/local/apache2/bin/apxs --with-java-home=/usr/local/jdk
  sleep 3
  make && make install
  在/usr/local/apache2/modules/ 下会产生mod_jk.so
  四、 配置Apache和tomcat
  1.修改apache配置文件
  include conf/mod_jk.conf
  2.vi /usr/local/apache2/conf/mod_jk.conf
  LoadModule jk_module modules/mod_jk.so
  JkWorkersFile conf/workers.properties
  JkLogFile logs/mod_jk.log
  JkShmFile logs/mod_jk.shm
  JkLogLevel info
  JkLogStampFormat "[%a %b %d %H:%M:%S %Y] "
  JkOptions +ForwardKeySize +ForwardURICompat -ForwardDirectories
  JkRequestLogFormat "%w %V %T"
  JkMount /* controller
  3.调度器JK的配置
  建立JK配置文件:
  vi /usr/local/apache2/conf/workers.properties
  worker.list=controller
  #========tomcat1========
  worker.tomcat1.type=ajp13
  worker.tomcat1.port=8009                     //第4步会配置此端口
  worker.tomcat1.host=localhost
  worker.tomcat1.lbfactor=1
  #========tomcat2========
  worker.tomcat2.type=ajp13
  worker.tomcat2.port=8009
  worker.tomcat2.host=192.168.0.4
  worker.tomcat2.lbfactor=1
  #========controller,负载均衡器======worker.controller.type=lb
  worker.controller.balance_workers=tomcat1,tomcat2# server.xml配置文件里的jvmRoute="tomcat1"指定的名字
  worker.controller.sticky_session=1=
  4.修改baiying21的tomcat调用端口
  vi /usr/local/tomcat/conf/server.xml
     //我们使用默认端口8009
  修改baiying23的tomcat调用端口
  
  5. tomcat集群配置
  tomcat1配置:
  A修改Engine节点信息:
  B、去掉   的注释符
  C、修改Cluster 节点信息
  
  
  tomcat2配置:
  A、修改Engine节点信息:
  B、去掉   的注释符
  C、修改Cluster 节点信息
  
  
  6.session配置
  修改web应用里面WEB-INF目录下的web.xml文件,加入标签
  
  直接加在之前就可以了
  做tomcat集群必须需要这一步,否则用户的session就无法正常使用。
  注意事项:1、mcastAddr="224.0.0.1"这主广播地址因此需要开启网卡组播功能
  route add -net 224.0.0.0 netmask 240.0.0.0 dev eth0
  分别在各机器上运行
  五、 创建jsp测试页面
  在tomcat1安装路径下建立目录test
  mkdir /usr/local/tomcat/webapps/ROOT/test/
  vi index.jsp
  
  
  tomcat1 jsp
  
  
  
  ----------------------------
  在tomcat2安装路径下建立目录test
  mkdir /usr/local/tomcat/webapps/ROOT/test/
  vi index.jsp
  
  
  tomcat2 jsp
  
  
  
  修改客户端的hosts文件
  192.168.0.3 www.baiying21.com
  192.168.0.3 www.baiying23.com
  在客户端浏览器输入www.baiying21.com/test/index.jsp多次刷新验证apache是否进行轮询成功。



页: [1]
查看完整版本: (二)apache+tomcat集群+session会话同步