zoukankan      html  css  js  c++  java
  • apache2.4+tomcat集群

    非常感谢 http://andashu.blog.51cto.com/8673810/1381369

    一、安装JDK

    tar -xzvf xxx.tar.gz
    chmod 777 -R /opt/jdk1.6.0_45/
    配置JAVA环境变量:
    vim /root/.bashrc  在最后添加以下内容:

    export JAVA_HOME=/opt/jdk1.6.0_45
    export PATH=$JAVA_HOME/bin:$PATH
    export CLASSPATH=".;$JAVA_HOME/lib/dt.jar;$JAVA_HOME/lib/tools.jar:$CLASSPATH"

    使环境变量生效:
    source /root/.bashrc
    测试配置是否成功:
    java –version

    二、安装TOMCAT

    apache-tomcat-7.0.41.tar.gz

    #tar -zxvf apache-tomcat-6.0.18.tar.gz
    #./apache-tomcat-6.0.18/bin/startup.sh

    可访问  http://192.168.0.101:8080

    重启命令:

    #./apache-tomcat-6.0.18/bin/shutdown.sh

    #./apache-tomcat-6.0.18/bin/startup.sh

    三、TOMCAT集群

    1.两个tomcat

    #mv apache-tomcat-6.0.18 /usr/local/TC6_A
    #cd /usr/local
    #cp -a TC6_A TC6_B

    2.修改 两个Tomcat 实例监听的端口

    # vim /usr/local/TC6_A/conf/server.xml

    Server <Server port="8005" shutdown="SHUTDOWN"> <Server port="10005" shutdown="SHUTDOWN"> 20005
    AJP Connector

    <!-- Define an AJP 1.3 Connector on port 8009 -->
    <Connector port = "8009" protocol = "AJP/1.3" redirectPort = "8443" />

    <!-- Define an AJP 1.3 Connector on port 8009 -->
    <Connector port = " 10009 " protocol = "AJP/1.3" redirectPort = " 10043 " />


    10009
    20043

    HTTP

    Connector

    <Connector port = "8080" protocol = "HTTP/1.1" connectionTimeout = "20000"
    redirectPort = "8443" />

    <Connector port = "10001" protocol = "HTTP/1.1" connectionTimeout = "20000"
    redirectPort = "10043" />

    20001

    20043
    Engine

    <!-- You should set jvmRoute to support load-balancing via AJP ie :
    <Engine name = "Standalone" defaultHost = "localhost" jvmRoute = "jvm1">
    <Engine name = "Catalina" defaultHost = "localhost">
    -->

    <Engine name = "Standalone" defaultHost = "localhost" jvmRoute = " Tomcat1">
    Tomcat2


    Cluster <Cluster className="org.apache.catalina.ha.tcp.SimpleTcpCluster" />

    <Cluster className = "org.apache.catalina.ha.tcp.SimpleTcpCluster" channelSendOptions = "8">

    <Manager className = "org.apache.catalina.ha.session.DeltaManager"

    expireSessionsOnShutdown = "false"

    notifyListenersOnReplication = "true" />

    <Channel className = "org.apache.catalina.tribes.group.GroupChannel">

    <Membership className = "org.apache.catalina.tribes.membership.McastService"

    address = "228.0.0.4"

    port = "45564"

    frequency = "500"

    dropTime = "3000" />

    <Receiver className = "org.apache.catalina.tribes.transport.nio.NioReceiver"

    address = "auto"

    port = "4000"

    autoBind = "100"

    selectorTimeout = "5000"

    maxThreads = "6" />

    <Sender className = "org.apache.catalina.tribes.transport.ReplicationTransmitter">

    <Transport className = "org.apache.catalina.tribes.transport.nio.PooledParallelSender" />

    </Sender>

    <Interceptor className = "org.apache.catalina.tribes.group.interceptors.TcpFailureDetector" />

    <Interceptor className="org.apache.catalina.tribes.group.interceptors.MessageDispatch15Interceptor" />

    </Channel>

    <Valve className = "org.apache.catalina.ha.tcp.ReplicationValve" filter = ""/>

    <Valve className = "org.apache.catalina.ha.session.JvmRouteBinderValve" />

    <Deployer className = "org.apache.catalina.ha.deploy.FarmWarDeployer"

    tempDir = "/tmp/war-temp/"

    deployDir = "/tmp/war-deploy/"

    watchDir = "/tmp/war-listen/"

    watchEnabled = "false" />

    <ClusterListener className = "org.apache.catalina.ha.session.JvmRouteSessionIDBinderListener" />

    <ClusterListener className = "org.apache.catalina.ha.session.ClusterSessionListener" />

    </Cluster>

    可访问  http://192.168.0.101:10001  http://192.168.0.101:20001

    image  image

    3、测试页面

    /usr/local/TC6_A/webapps/ROOT 、/usr/local/TC6_B/webapps/ROOT 目录下 vim Hello.jsp。

    <%@ page contentType="text/html;charset=GBK"%>
    <html>
    <head>
    <title>Tomcat 测试 </title>
    </head>
    <body>
    <font color="red" size="20">
    <!— 使用 out 内建对象打印一条消息到输出页面 -->
    <% out.print( "Tomcat 集群测试 A !!! " ); %>
    </font>
    </body>
    </html>


    TC6_B的改一行输出:
    <% out.print( "Tomcat 集群测试 B !!! " ); %>

    可访问  http://192.168.0.101:10001/Hello.jsp  、http://192.168.0.101:20001/Hello.jsp

    image     image

    四、Apache负载均衡器

    1.安装

    # tar -zxvf httpd-2.4.10.tar.gz

    # cd httpd-2.4.10

    #./configure --prefix=/usr/local/apache2  --enable-cache --enable-disk-cache -enable-mem-cache --enable-file-cache --with-ssl --enable-ssl --enable-so --enable-mime-magic --enable-proxy --enable-proxy-ajp --enable-proxy-balancer --enable-mods-shared=most --with-mpm=worker --with-apr-util=/usr/local/apr-util --with-pcre=/usr/local/pcre/

    # make
    # make install

    2.配置Apache 为 Tomcat 集群的负载均衡器

    vim /usr/local/apache2/conf/httpd.conf

    加载:

    LoadModule rewrite_module modules/mod_rewrite.so
    LoadModule slotmem_shm_module modules/mod_slotmem_shm.so
    LoadModule speling_module modules/mod_speling.so
    LoadModule ssl_module modules/mod_ssl.so

    ##################################################

    #:如果只是修改配置 不编译重装的话 打开:

    LoadModule proxy_module modules/mod_proxy.so
    LoadModule proxy_ajp_module modules/mod_proxy_ajp.so
    LoadModule rewrite_module modules/mod_rewrite.so
    LoadModule proxy_balancer_module modules/mod_proxy_balancer.so
    LoadModule proxy_connect_module modules/mod_proxy_connect.so
    LoadModule proxy_ftp_module modules/mod_proxy_ftp.so
    LoadModule proxy_http_module modules/mod_proxy_http.so
    LoadModule slotmem_shm_module modules/mod_slotmem_shm.so

    LoadModule speling_module modules/mod_speling.so
    LoadModule ssl_module modules/mod_ssl.so

    ##################################################

    末尾添加:

    ProxyRequests Off
    ProxyPass / balancer://myCluster/
    <Proxy balancer://myCluster/>
    BalancerMember ajp://localhost:10009 route=Tomcat1
    BalancerMember ajp://localhost:20009 route=Tomcat2
    </Proxy>

    说明:其中" myCluster "是集群的名称," ajp://localhost:10009 route=Tomcat1 " 对应 Tomcat 集群中的 TC6_A 实例," ajp://localhost:20009 route=Tomcat2 " 对应 Tomcat 集群中的 TC6_B 实例。

    3.访问页面

    1. 重启apache httpd后,访问:http://192.168.0.101/Hello.jsp

    由 于 Apache 为 Tomcat 集群的负载均衡器,使用的是轮换算法,其均匀地将请求发送到集群中的各个 Tomcat 实例。因此轮换访问两个不同 Tomcat 实例中的 Hello.jsp 。

    image

    image

    [root@centos1 opt]# netstat -tnlp
    Active Internet connections (only servers)
    Proto Recv-Q Send-Q Local Address               Foreign Address             State       PID/Program name  
    tcp        0      0 0.0.0.0:22                  0.0.0.0:*                   LISTEN      1078/sshd          
    tcp        0      0 127.0.0.1:25                0.0.0.0:*                   LISTEN      1554/master        
    tcp        0      0 :::20009                    :::*                        LISTEN      2427/java          
    tcp        0      0 :::3306                     :::*                        LISTEN      1452/mysqld        
    tcp        0      0 :::80                       :::*                        LISTEN      23130/httpd        
    tcp        0      0 :::30001                    :::*                        LISTEN      2471/java          
    tcp        0      0 :::10001                    :::*                        LISTEN      2396/java          
    tcp        0      0 :::81                       :::*                        LISTEN      1564/httpd         
    tcp        0      0 ::ffff:127.0.0.1:30005      :::*                        LISTEN      2471/java          
    tcp        0      0 ::ffff:127.0.0.1:10005      :::*                        LISTEN      2396/java          
    tcp        0      0 :::22                       :::*                        LISTEN      1078/sshd          
    tcp        0      0 :::30009                    :::*                        LISTEN      2471/java          
    tcp        0      0 :::10009                    :::*                        LISTEN      2396/java          
    tcp        0      0 ::1:25                      :::*                        LISTEN      1554/master        
    tcp        0      0 ::ffff:127.0.0.1:4000       :::*                        LISTEN      2396/java          
    tcp        0      0 ::ffff:127.0.0.1:4001       :::*                        LISTEN      2427/java          
    tcp        0      0 :::20001                    :::*                        LISTEN      2427/java          
    tcp        0      0 ::ffff:127.0.0.1:4002       :::*                        LISTEN      2471/java          
    tcp        0      0 ::ffff:127.0.0.1:20005      :::*                        LISTEN      2427/java

  • 相关阅读:
    Hibernate4.0之HibernateSessionFactory源码详解
    Struts.xml中Action的method与路径的三种匹配方法
    codeforces B. Ohana Cleans Up
    codeforces C. Vanya and Scales
    Hibernate主键生成策略
    codeforces B
    FileUpload实现文件上传(包含多文件)
    structs2之多文件上传
    svn的安装与使用
    codeforces Soldier and Number Game(dp+素数筛选)
  • 原文地址:https://www.cnblogs.com/stay-sober/p/4207312.html
Copyright © 2011-2022 走看看