zoukankan      html  css  js  c++  java
  • 同时启动多个Tomcat 和 Linux部署多个tomcat

    同时启动多个Tomcat 

    出于某种需要,需要同时启动多个Tomcat服务器。如果不加任何修改,在一台服务器上同时运行两个Tomcat服务显然会发生端口冲突。假设现在已经按照正常的方式安装配置好了第一个Tomcat,第二个如何设置呢?现将解决方案写出来分享一下,希望能对有这方面需要的朋友有点启发。

    以下apache-tomcat-5.5.15 和 jakarta-tomcat-5.0.28 为例说明:

    (注意:所用Tomcat服务器都为解压版(即绿化版),非安装版;安装版不能同时启动多个。)

    1、先将jakarta-tomcat-5.0.28.zip 和 apache-tomcat-5.5.15.zip分别解压到某个盘。

    2、特别要注意:不要设置CATALINA_HOME

    3、分别修改安装目录下的conf子目录中的server.xml文件(注意:两个文件中对应的端口号要不一样) :

    a、修改http访问端口(默认为8080端口),将8080修改为tomcat不在使用的端口号。此处所设的端口号即是以后访问web时所用的端口号。

    <Connector className="org.apache.coyote.tomcat4.CoyoteConnector" port="8080"

    minProcessors="5" maxProcessors="75"

    enableLookups="true" redirectPort="8443"

    acceptCount="100" debug="0" connectionTimeout="20000"

    useURIValidationHack="false" disableUploadTimeout="true" />

    b、修改Shutdown端口(默认为8005端口),将8005修改为没有在使用的端口号,例如8055。

    <Server port="8005" shutdown="SHUTDOWN" debug="0">

    c、修改8009端口,将8009修改为没有在使用的端口号,例如8099。

    <Connector className="org.apache.coyote.tomcat4.CoyoteConnector"

    port="8009" minProcessors="5" maxProcessors ="75"

    enableLookups="true" redirectPort="8443"

    acceptCount="10" debug="0" connectionTimeout ="20000"

    useURIValidationHack="false"

    protocolHandlerClassName="org.apache.jk.server.JkCoyoteHandler" />

    4、依次启动两个tomcat。

    以下是使用Tomcat6.0.16解压版本所做的实验:

    1、解压Tomcat到一个新的目录,比如d:\TomcatServer2。

    2、新建一个环境变量CATALINA_HOME2,路径为d:\TomcatServer2。

    3、编辑Tomcat/bin/startup.bat和catalina.bat,把CATALINA_HOME全部替换成CATALINA_HOME2。

    4、编辑Tomcat/conf/server.xml,将8080和8005端口号8开头都改为9开头(其他端口只要不冲突即可),并修改默认编码为utf-8(以支持中文链接)

    示例:

    <Connector port="9080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="9443" URIEncoding='UTF-8' />

    ============================================================

    <Connector port="9009" protocol="AJP/1.3" protocolHandlerClassName="org.apache.jk.server.JkCoyoteHandler" redirectPort="9443" URIEncoding='UTF-8'/>

    5.运行测试。

    补充:如果想只运行一个tomcat,可以通过配置多个Service来完成。

    假设F:\Root为根目录,test为web应用目录

    把下面的代码添加到server.xml的Server节点之后

    <Service name="Root">

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

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

    <Engine name="Root" defaultHost="localhost">

    <Realm className="org.apache.catalina.realm.UserDatabaseRealm" resourceName="UserDatabase"/>

    <Host name="localhost" appBase="F:\Root" unpackWARs="true" autoDeploy="true" xmlValidation="false" xmlNamespaceAware="false">

    <Context docBase="test" path=""/>

    </Host>

    </Engine>

    但是有一个小小的问题是(据说是5.5的bug):子目录不能有与应用名相同的情况。也就是说,test下面不能再有一个test目录。否则http://localhost:8888/test/aaa.html将访问的是F:\Root\test\aaa.html,而不是F:\Root\test\test\aaa.html

                                                                         from  谱天成

    如何同时启动多个Tomcat服务器

     
    今天在论坛上看到一个朋友对同时启动两个tomcat服务器的问题,我上网查找后,觉的下面应该是好的解决方法,希望有改进之处,朋友们多评论!

    我所用Tomcat服务器都为zip版,非安装版。以两个为例:
    安装第二个Tomcat完成后,到安装目录下的conf子目录中打开server.xml文件,查找以下三处:

    (1) 修改http访问端口(默认为8080端口)
              <Connector   className="org.apache.coyote.tomcat4.CoyoteConnector"    port="8080" 
                                    minProcessors="5"    maxProcessors="75"  
                                     enableLookups="true"    redirectPort="8443"  
                                     acceptCount="100"    debug="0"    connectionTimeout="20000"  
                                     useURIValidationHack="false"    disableUploadTimeout="true"   />
    (大概在86行左右)将8080修改为第一个tomcat不在使用的端口号。此处所设的端口号即是以后访问web时所用的端口号。

    (2) 修改Shutdown端口(默认为8005端口)
        <Server port="8005" shutdown="SHUTDOWN" debug="0">
    (大概在13行左右)将8005修改为没有在使用的端口号,例如8095   

    (3) 修改JVM启动端口(默认为8009端口)
               < Connector    className ="org.apache.coyote.tomcat4.CoyoteConnector"   
                                     port ="8009"     minProcessors ="5"     maxProcessors ="75"   
                                     enableLookups ="true"     redirectPort ="8443"   
                                     acceptCount ="10"     debug ="0"     connectionTimeout ="20000"  
                                     useURIValidationHack ="false"   
                                    protocolHandlerClassName ="org.apache.jk.server.JkCoyoteHandler" />
    (大概在107行左右)将8009修改为没有在使用的端口号,例如8099  
      
    这样就没问题了。   

                                                                from  csdn

     

      安装版 不行

     

     

    以下为个人实际操作的一部分:

    一台电脑上是不能安装2个安装版的tomcat的,但是可以安装多个解压版的。

    具体步骤:

    1. 解压已经下载的程序包“apache-tomcat-6.0.16.zip” & "apache-tomcat-5.5.28.zip";

    2. 将文件夹“apache-tomcat-6.0.16”拷贝到,想要放置的目录下(本例:“D:\Program\Apache”);

    3. 安装tomcat服务;

    a) 【运行】->cmd,进入dos界面;

    b) 从dos中,进入到“bin”目录(本例:“D:\Program\Apache\apache-tomcat-6.0.16\bin”),执行命令:service.bat install Apache(注意:Apache为服务的名称,可以任意命名),当提示“The service ‘apache’ has been installed.”,表示安装成功;

    c) 卸载服务请使用命令:sc delete “Apache”(Apache为服务的名称);

    4. 修改tomcat端口号;

    a) 去tomcat安装目录(或者解压目录)下的“conf”文件夹中找到文件“server.xml”(本例:“D:\Program Files\Apache Software Foundation\apache-tomcat-6.0.29\conf”);

    b) 找到<Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" />, 将port="8080"改为其它;

    c) 找到<Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />,将8009改为其它;

    d) 找到<Server port="8005" shutdown="SHUTDOWN">,将8005改为其它;

    5. 【运行】->services.msc,启动服务管理窗口,找到“Apache Tomcat Apache”这个服务,把它的“启动类型”设置成“自动”,这样就可以开机运行并开启服务。

    6. 修改tomcat管理用户密码;

    a) 去tomcat安装目录(或者解压目录)下的“conf”文件夹中找到文件“tomcat-users.xml”(本例:“D:\Program Files\Apache Software Foundation\apache-tomcat-6.0.29\conf”);

    b) 在节点<tomcat-users>中添加,如下内容:

    ?

    <role rolename="manager"/>

    <user username="admin" password="admin" roles="manager"/>

    c) 重启tomcat,再进入管理页面的时候,使用用户“admin”和密码“admin”,就可以登陆了;

    补充:如果在cmd里执行service.bat install ** 命令的时候报错,就去设置一下环境变量CATALINA_HOME=D:\tomcat-6.0.29,就好了。




    ----------------------------------------------------

    Linux部署多个tomcat

    1.环境:
    1.1. Centos 5.0
    1.2.Tomcat 5.5.17

    2.需要解决一下几个问题
    2.1.不同的tomcat启动和关闭监听不同的端口
    2.2.不同的tomcat的启动文件startup.sh中要指定各自的CATALINA_HOME和CATALINA_BASE这两个环境变量。

    3.解决步骤:

    3.1.修改/etc目录下的profile文件,添加一组java环境变量,和两组CATALINA环境变量;修改后的profile文件示例如下:
    JAVA_HOME=/usr/java/jdk
    CLASSPATH=$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib:$JAVA_HOME/bin
    export JAVA_HOME CLASSPATH
    CATALINA_BASE=/u01/app/apache-tomcat-6.0.18
    CATALINA_HOME=/u01/app/apache-tomcat-6.0.18
    export CATALINA_BASE CATALINA_HOME
    CATALINA_2_BASE=/u01/app/apache-tomcat-shanghai
    CATALINA_2_HOME=/u01/app/apache-tomcat-shanghai
    export CATALINA_2_BASE CATALINA_2_HOME
    TOMCAT_HOME=/usr/local/tomcat
    export TOMCAT_HOME
    TOMCAT_2_HOME=/usr/local/tomcat2/apache-tomcat-5.5.17
    export TOMCAT_2_HOME

    3.2.第一个安装在/usr/local/tomcat处的tomcat,保持解压后的原状不用修改。修改第二个安装在/usr/local/tomcat2/apache-tomcat-5.5.17处的tomcat。需要修改两个地方:
    3.2.1.修改server.xml配置和第一个不同的启动、关闭监听端口。修改后示例如下:
    <Server port="9005"shutdown="SHUTDOWN"> 端口:8005->9005
    <!-- Define a non-SSL HTTP/1.1 Connector on port8080 -->
       <Connector port="9080"maxHttpHeaderSize="8192" 端口:8080->9080
    maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
                  enableLookups="false" redirectPort="8443" acceptCount="100"
                  connectionTimeout="20000" disableUploadTimeout="true"/>
    <!-- Define an AJP 1.3 Connector on port 8009-->
       <Connectorport="9009"                       端口:8009->9009
                  enableLookups="false" redirectPort="8443" protocol="AJP/1.3"/>
    3.2.2.修改bin下的startup.sh和shutdown.sh。修改后的示例如下:(同样的修改)
    export JAVA_HOME=/usr/jdk
    export PATH=$PATH:$JAVA_HOME/bin
    export CLASSPATH=$JAVA_HOME/lib
    export CATALINA_HOME=$CATALINA_2_HOME 利用profile中第二组设置
    exportCATALINA_BASE=$CATALINA_2_BASE      利用profile中第二组设置

    4.修改完毕后,必须重新启动linux。可能是因为修改了profile文件的缘故?

    5.分别进入两个tomcat的bin目录,启动tomcat--./startup.sh

    6.然后访问http://localhost:8080 和 http://localhost:9080都可以看到熟悉的tomcat欢迎界面。

    7.如果想启动多个可以依此法类推……

     

    我的配置:

    -----------------------greatwqs install--------------------------------------------

    1.server.xml

    <!-- wang_qs update20110303-->
    <Server port="9005"shutdown="SHUTDOWN">

     

       <!-- wang_qs update 20110303-->
       <Connector port="8288" protocol="HTTP/1.1"
                  connectionTimeout="20000"
                  redirectPort="8443" />

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

     

    2.修改startup.sh,shutdown.sh


    #-----------------------------------------------------------------------------
    # wang_qs  install
    #
    # 20100303
    #-----------------------------------------------------------------------------
    CATALINA_HOME=/home/devwqs/server/apache-tomcat-6.0.32
    CATALINA_BASE=/home/devwqs/server/apache-tomcat-6.0.32
    exportCATALINA_HOME      
    #利用profile中第二组设置
    exportCATALINA_BASE      
    #利用profile中第二组设置

     

    ==================================================================================================

    需要解决一下几个问题

     

    不同的tomcat启动和关闭监听不同的端口

    不同的tomcat的启动文件startup.sh中要指定各自的CATALINA_HOME和CATALINA_BASE这两个环境变量。

    解决步骤:

    修改/etc目录下的profile文件,添加一组java环境变量,和两组CATALINA环境变量;修改后的profile文件示例如下:

    JAVA_HOME=/usr/java/jdk

    CLASSPATH=$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib:$JAVA_HOME/bin

    export JAVA_HOME  CLASSPATH

     

     

    CATALINA_BASE=/opt/tomcat

    CATALINA_HOME=/opt/tomcat

    export  CATALINA_BASE CATALINA_HOME

     

    CATALINA_2_BASE=/opt/tomcat2

    CATALINA_2_HOME=/opt/tomcat2

    export CATALINA_2_BASE CATALINA_2_HOME

     

    TOMCAT_HOME=/opt/tomcat

    export TOMCAT_HOME

     

    TOMCAT_2_HOME=/opt/tomcat2

    export TOMCAT_2_HOME

     

     

    第一个安装在/opt/tomcat处的tomcat,保持解压后的原状不用修改。修改第二个安装在/opt/tomcat2处的tomcat。需要修改两个地方:

     

    修改server.xml配置和第一个不同的启动、关闭监听端口。修改后示例如下:

     

    <Server port="9005"shutdown="SHUTDOWN"> 端口:8005->9005

    <!-- Define a non-SSL HTTP/1.1 Connector on port8080 -->

    <Connector port="9080"maxHttpHeaderSize="8192" 端口:8080->9080

    maxThreads="150" minSpareThreads="25" maxSpareThreads="75"

    enableLookups="false" redirectPort="8443" acceptCount="100"

    connectionTimeout="20000" disableUploadTimeout="true"/>

     

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

       <Connectorport="9009"                       端口:8009->9009

       enableLookups="false"redirectPort="8443" protocol="AJP/1.3" />

     

     修改bin下的startup.sh和shutdown.sh。修改后的示例如下:(同样的修改)

    export JAVA_HOME=/usr/jdk

     

    export PATH=$PATH:$JAVA_HOME/bin

     

    export CLASSPATH=$JAVA_HOME/lib

     

    export CATALINA_HOME=$CATALINA_2_HOME 利用profile中第二组设置

     

    exportCATALINA_BASE=$CATALINA_2_BASE      利用profile中第二组设置

     

     

      修改完毕后,必须重新启动linux。可能是因为修改了profile文件的缘故?

      分别进入两个tomcat的bin目录,启动tomcat——./startup.sh

       然后访问http://localhost:8080 和http://localhost:9080

     

    3、光盘镜像文件的挂接(mount)
       #mkdir /mnt/vcdrom
       注:建立一个目录用来作挂接点(mount point)
       #mount -o loop -t iso9660 /home/sunky/mydisk.iso/mnt/vcdrom
       注:使用/mnt/vcdrom就可以访问盘镜像文件mydisk.iso里的所有文件了。 





  • 相关阅读:
    Django进阶Model篇006
    nginx 实现反向代理、负载均衡、高可用
    【springcloud】Zuul高级配置(zuul--3)
    【springcloud】Zuul高级配置(zuul--2)
    【springcloud】API Gateway 的路由和过滤(Zuul--1)
    【springcloud】服务熔断与降级(Hystrix)
    【springcloud】hystrix面试题
    时间复杂度On和空间复杂度O1是什么意思?
    2019年 Java 面试题解析
    【springcloud】模拟RPC调用(Feign)
  • 原文地址:https://www.cnblogs.com/cuker919/p/4878549.html
Copyright © 2011-2022 走看看