apache+tomcat+mod_jk 搭建负载均衡系统。


0.os系统采用centos6.8 x64 2.6.32-642.el6.x86_64
1.首先安装好jdk环境本次采用jdk-8u111-linux-x64.gz
  jdk和jre的安装目录要不同,否则的话lib目录下没有dt.jar 和tools.jar
  要配置好环境变量如下
  vi /etc/profile
   #add zwy 2017-08-29
   export JAVA_HOME=/home/zhang/java/jdk1.8.0_111
   export JRE_HOME=/home/zhang/java/jdk1.8.0_111/jre
   export PATH=$JAVA_HOME/bin:$PATH
   export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
   export LD_LIBRARY_PATH=/usr/local/apr/lib

   source /etc/profile
   java -version 如果能显出版本号,说明jdk安装好了。
2.安装好tomcat。本次tomcat使用7.0.95 x64位

  2-1注意要修改/usr/local/tomcat/conf 下的文件server.xml
  shutdown 8005 *****connect http port 8080 *****connect ajp port 8009这三个端口每个进程要不同,否则发生端口占用问题。
  2-2修改jvmroute 为tomcat1实例名字并打开负载均衡

      <Connector port="11009" protocol="AJP/1.3" redirectPort="8443" />  
        <Engine name="Catalina" defaultHost="localhost"  
                
               jvmRoute="tomcat1">    修改此处的jvmRoute
               
               
        <Cluster className="org.apache.catalina.ha.tcp.SimpleTcpCluster"/>   去掉前面的注释
        
        *************************************************************************
         <Host name="localhost"  appBase="webapps"
            unpackWARs="true" autoDeploy="true">

        <!-- SingleSignOn valve, share authentication between web applications
             Documentation at: /docs/config/valve.html -->
        <!--
        <Valve className="org.apache.catalina.authenticator.SingleSignOn" />
        -->

        <!-- Access log processes all example.
             Documentation at: /docs/config/valve.html
             Note: The pattern used is equivalent to using pattern="common" -->
        <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
               prefix="localhost_access_log." suffix=".txt"
               pattern="%h %l %u %t &quot;%r&quot; %s %b" />
         
         添加此句修改网站的默认目录
        <Context path="" docBase="/usr/local/tomcat/webapps/zwy/" debug="0"/>
      </Host>
      
      
     2-3 根据情况在tomcat1/webapps/zwy  下添加一个内容为1的index.html内容。为了后面测试方便
         根据情况在tomcat2/webapps/zwy  下添加一个内容为2的index.html内容。
     2-4 catalina.sh在文件末尾添加CATALINA_HOME
         CATALINA_HOME=/usr/local/apache-tomcat-7.0.59/
     
      
      启动./usr/local/tomcat/bin/startup.sh   
      停止./usr/local/tomcat/bin/shutdown.sh  
    2-5分别测试http://localhost:8080 显示内容为1   http://localhost:8180 显示内容为2
3.安装好apache2.2.34
  3-1 安装gcc
  3-2 apr
  3-3 安装apr-util
  3-4 安装pcre
  3-4 编译./configure --prefix=/usr/local/apache --with-apr=/usr/local/apr --with-apr-util=/usr/local/apr-util --with-pcre=/usr/bin/pcre-config  --enable-so --enable-proxy --enable-proxy_http=shared --enable-module=so --enable-mods-shared=all --enable-proxy-ajp=shared  --enable-proxy-balancer --disable-deflate
      make clean 全新安装不用这样操作。
      make
      make install
  3-5下载mod_jk.so注意版本一定要正确,否则提示 cannot load /usr/local/apache/modules/mod_jk.so ELF错误。正确版本:mod_jk-1.2.31-httpd-2.2.x.so
  3-6将下载的mod_jk-1.2.31-httpd-2.2.x.so 重命名为 mod_jk.so 并放到apache的modules目录下,权限给777
  3-7修改httpd.conf 在文件最后添加如下
     include conf/mod_jk.conf
  3-8在apache的conf目录下新建mod_jk.conf
     内容如下:

     #Load Module
     LoadModule jk_module modules/mod_jk.so

     #指定 workers.properties文件路径
     JkWorkersFile conf/workers.properties

     #指定哪些请求交给tomcat处理,"controller"为在workers.propertise里指定的负载分配控制器名
     JkMount /* controller
  3-9 在apache的conf目录下新建workers.properties 其内容如下
      
       [root@tomcat-test conf]# more workers.properties
       worker.list=controller,tomcat1,tomcat2
       ##########tomcat1######
       worker.tomcat1.port=8009
       worker.tomcat1.host=127.0.0.1
       worker.tomcat1.type=ajp13
       worker.tomcat1.lbfactor=1
       
       
       ##########tomcat2######
       
       worker.tomcat2.port=8109
       worker.tomcat2.host=127.0.0.1
       worker.tomcat2.type=ajp13
       worker.tomcat2.lbfactor=1
       
       #######################
       worker.controller.type=lb
       worker.controller.balanced_workers=tomcat1,tomcat2
       worker.controller.sticky_session=false
       worker.controller.sticky_session_force=1
       
   3-10 ./usr/local/apache/bin/apachectl -t 检查语法
   3-11. http://localhost 如果显示It works 说明apache安装正常。
   3-12. 修改httpd.conf中的默认首页文件。
        <IfModule dir_module>
            DirectoryIndex apache.html
        </IfModule>
   3-13. ./usr/local/apache/bin/apachectl -k start 启动apache
   3-14. http://localhost 多刷新几次,内容是1 和2交替出现。