在一台主机上模拟tomcat集群

    技术2022-05-20  45

    1. 如何在一台主机上运行两个tomcat实例

    2. httpd+tomcat负载均衡集成 

    3. 下载及参考文献 

    <1>.如何在一台主机上运行两个tomcat示例

    1.1 下载tomcat压缩包,解压两次,分别命名成work2和work3,如下:

     

    如果不做任何设置很显然是不能成功运行的,一方面是tomcat的运行需要存在环境变量CATALINA_HOME,另一方面如果开启第一个tomcat实例,然后在开启另外的tomcat的时候,会出现JVM_BIND的错误。所需要的修改设置如下:

    1.1.1 修改startup.bat文件,在该文件的开始设置CATALINA_HOME环境变量:

    SET CATALINA_HOME="E:/TomcatCluster/work2"(将这里设置成tomcat解压的目录 ) ++++++++++++ startup.bat文件正文

    1.1.2 修改tomcat的server.xml文件:

     <Connector port="8080" protocol="HTTP/1.1" 

                   connectionTimeout="20000"                 redirectPort="8443" />

    将8080端口号修改成计算机中不使用的端口号。

    1.1.3 修改shutdown端口号

    <Server port="8000" shutdown="SHUTDOWN"> 

    将8000修改成一个为占用的端口号(这个只需要修改一个tomcat实例的即可)。

    按照上面的两个步骤分别修改work2和work3的配置文件,同时开启两个tomcat示例,确保work2和work3能够正常开启。上面完成了在一台主机上同时开启两个tomcat服务器的工作。 

    <2>. httpd + tomcat负载均衡整合

    2.1 安装httpd, 下载http://www.apache.org/dist/httpd/binaries/win32/httpd-2.2.17-win32-x86-no_ssl.msi,安装过程略去。安装完成之后,如果需要修改httpd的端口号,可以修改conf/httpd.conf:

     

    # # Listen: Allows you to bind Apache to specific IP addresses and/or # ports, instead of the default. See also the <VirtualHost> # directive. # # Change this to Listen on specific IP addresses as shown below to  # prevent Apache from glomming onto all bound IP addresses. # #Listen 12.34.56.78:80 Listen 8081

    如果不需要修改端口号的话,直接打开httpd.exe,打开浏览器,输入http://127.0.0.1:8081/(地址中的端口号需要和上面修改的端口号相一致),如果出现It  Works,表明httpd成功安装。

    2.2 修改work2的http监听端口,端口号可以任意,这里是我的配置:

      <Connector port="8079" protocol="HTTP/1.1" 

                   connectionTimeout="20000"                 redirectPort="8443" />

     2.3 修改ajp的端口号:

    <!-- Define an AJP 1.3 Connector on port 8009 -->

        <Connector port="8077" protocol="AJP/1.3" redirectPort="8443" /> 

    2.4 配置服务器标识

    <Engine name="Catalina" defaultHost="localhost"  jvmRoute="worker2">       <!--For clustering, please take a look at documentation at:           /docs/cluster-howto.html  (simple how to)           /docs/config/cluster.html (reference documentation) -->          <Cluster className="org.apache.catalina.ha.tcp.SimpleTcpCluster"/>

    2.5 实现session复制,修改context.xml:

    <Context distributable="true">  +++++++++++++context.xml剩余默认配置

    2.6 按照同样的方式设置work3,我的设置如下:

     <Connector port=" 8099" protocol="HTTP/1.1"                 connectionTimeout="20000" 

                   redirectPort="8443" /> 

     <Connector port="9999" protocol="AJP/1.3" redirectPort="8443" /> 

    <Engine name="Catalina" defaultHost="localhost"  jvmRoute="worker3">       <!--For clustering, please take a look at documentation at:           /docs/cluster-howto.html  (simple how to)           /docs/config/cluster.html (reference documentation) -->   

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

    2.7 在上面的两个tomcat实例的webapp中添加test目录,并添加test.jsp文件:

    < html > < head >    < title > helloapp </ title > </ head > < body > <% System.out.println( " call test.jsp " ); %>    SessionID:  <% = session.getId()  %>    </ body > </ html >

     分别访问上面两个页面的test.jsp页面,确保能够访问, 在我的机器上的地址如下:http://localhost:8079/test/test.jsp和http://localhost:8099/test/test.jsp。

    2.8 使用jk方式集成 httpd + tomcat

    下载mod_jk-1.2.31-httpd-2.2.3.so,请下载合适的mod_jk版本,改名为mod_jk.so放进modules文件夹内,修改httpd.conf文件,增加如下内容:

    ###############################add by qiang.xu###### LoadModule jk_module modules/mod_jk.so JkWorkersFile conf/workers.properties JkLogFile logs/mod_jk.log JkLogLevel debug JkMount  /*.do loadbalancer JkMount  /*.jsp loadbalancer

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

    增加 workers.properties文件:

    worker.list=loadbalancer worker.worker2.port=8077   #ajp的监听端口 worker.worker2.host=172.0.0.1  #108.88.3.105 worker.worker2.type=ajp13 worker.worker2.lbfactor=1 worker.worker3.port=9999 worker.worker3.host=127.0.0.1 worker.worker3.type=ajp13 worker.worker3.lbfactor=1 worker.loadbalancer.type=lb #这里在的worker2、worker3为需要与上边tomcat设置的别名一致 worker.loadbalancer.balance_workers=worker2,worker3  worker.loadbalancer.sticky_session=1 

    最终完成httpd + tomcat的配置,如果一切正常的话,试着打开这个http://127.0.0.1:8081/test/test.jsp链接,如果能够正常访问表明整合成功。

    <3>. 下载及参考文献

    下载work2,work3, httpd

     

    参考文献:

    http://shmilylq.iteye.com/blog/427165 

    http://blog.csdn.net/zhouyong0/archive/2011/04/14/6323536.aspx 

    http://www.blogjava.net/pengo/archive/2011/04/15/348331.html 

     


    最新回复(0)