我可以在同一台机器上运行两个tomcat实例吗?

我可以在同一台机器上运行两个不同端口的Tomcat服务器吗? 会造成什么问题吗? 当我运行一个tomcat时,它将在任务pipe理器中创buildjavaw.exe文件。

除了更改以下答案之一所述的protocol="HTTP/1.1" Connector port

我认为它需要改变服务器端口的'关机'

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

还有AJP端口号

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

如果你想并行运行多个tomcat实例。

是的! 您可以。 你需要改变你的端口有另一个实例。

要这样做,请按照下列步骤。

1.)在{Tomcat安装文件夹} \ conf \中findserver.xml。

2.)find类似的声明

 <!-- Define a non-SSL HTTP/1.1 Connector on port 8180 --> <Connector port="8080" maxHttpHeaderSize="8192" maxThreads="150" minSpareThreads="25" maxSpareThreads="75" enableLookups="false" redirectPort="8443" acceptCount="100" connectionTimeout="20000" disableUploadTimeout="true" /> 

3.)关于Tomcat的server.xml文件引用它在端口8080上运行。将连接器端口=“8080”端口更改为任何其他端口号。

例如

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

4)编辑并保存server.xml文件。 重新启动Tomcat。 完成

是的,这是绝对好的。 我已经做了很多次了 不过你需要检查你用于Tomcat的所有端口。 我不记得它是否还有一个特殊的“本地控制”端口,但如果是这样的话,它们也需要不同。

添加一些指针来详细说明如何完成这些操作:

  1. 在一台服务器上运行多个Tomcat实例。
  2. 以上的旧版本 。
  3. 在这种设置中扮演angular色的各种环境variables和文件夹的说明。

一般来说,我们也设置CATALINA_HOME属性。 所以启动脚本首先读取catalina_home,并从中找出其余的path。 如果设置了此环境variables,并且如果尝试从任何复制粘贴的tomcat安装位置运行tomcat,则将运行由CATALINA_HOME指向的tomcat。

所以,当从同一台机器上运行两个tomcat时,请删除CATALINA_HOME属性。 这样,它将根据从中运行启动脚本的目录设置CATALINA_HOME属性。

你可以在你的服务器/ pc上运行无限的tomcat实例,当然你需要定义每一个不同的端口。

正如在这里已经讨论的那样,你可以省略CATALINA_HOME环境variables,并使用catalina.sh脚本来pipe理你的容器的生命周期,或者你可以定义另外一个variables,像CATALINA_HOME1,指向新的tomcat的安装目录,并将其catalina.sh脚本修改为使用CATALINA_HOME1而不是原始的CATALINA_HOME引用。

在任何情况下,都可以通过省略名为CATALINA_HOME引用的任何环境variables并仅链接到相应的tomcat的catalina.sh脚本来避免。

例:

 cd /usr/sbin ln -s /usr/local/java/apache-tomcat-6.0.37/bin/catalina.sh catalina1 ln -s /usr/share/java/apache-tomcat-6.0.37/bin/catalina.sh catalina2 

然后像这样从任何地方开始你的雄猫:

 catalina1 start catalina2 start 

汤姆

这是我在Windows上运行两个Tomcats(Tom1和Tom2)的经验/过程:

  1. 根据http://www.ntu.edu.sg/home/ehchua/programming/howto/Tomcat_HowTo.html设置Tomcat

  2. 但是,Tom1启动正常,但不是Tom2。

  3. 所以除了上面的内容,在server.xml中,make /改变如下(在Tomcat 6.0.44,JDK 1.6.0_45上):

    第22行:Tom1closures端口= 9001
    第22行:Tom2closures端口= 9002

    第53行:Tom1服务名称=“Catalina1”
    第53行:Tom2服务名称=“Catalina2”

    第69行:Tom1连接器(http)= 9001
    第69行:Tom2连接器(http)= 9002

    71行:Tom1redirect端口= 8443
    71行:Tom2redirect端口= 8444

    第90行:Tom1连接器(ajp)= 8009
    第90行:Tom1redirect= 8443
    第90行:Tom2连接器(ajp)= 8010
    第90行:Tom2redirect= 8444

    102行:Tom1引擎名称=“Catalina1”
    102行:Tom2引擎名称=“Catalina2”

  4. 启动每个服务器

瞧!

我遇到过类似的情况, 这里提到的答案很简单,很简单。

假设你在C:\ apache-tomcat-7.0.39中只有一个Tomcat文件夹,并且你希望从它运行两个实例。

确保你有CATALINA_HOME系统/用户variables集,并指向C:\ apache-tomcat-7.0.39

创build一个文件夹C:\ instance1。 从C:\ apache-tomcat-7.0.39复制conf,webapps和临时文件夹并将它们粘贴到C:\ instance1。 您可以删除位于instance1下的webapps和temp文件夹中的内容,但不要触及conf内容。 现在复制>粘贴C:\ instance1并将其重命名为instance2。 这样,instance1和instance2将具有相同的内容。 转到C:\ instance2 \ conf,编辑server.xml并更改这些端口的号码(我将它们标记为XXXX):

将您想要的任何内容部署到instance1 \ webapps和instance2 \ webapps中在C:\下创build以下4个batch file

instance1_startup.bat

 @echo off set CATALINA_BASE=C:\instance1 cd "%CATALINA_HOME%\bin" set TITLE=My Tomcat Instance 01 call startup.bat %TITLE% 

instance1_shutdown.bat

 @echo off set CATALINA_BASE=C:\instance1 cd "%CATALINA_HOME%\bin" call shutdown.bat 

instance2_startup.bat

 @echo off set CATALINA_BASE=C:\instance2 cd "%CATALINA_HOME%\bin" set TITLE=My Tomcat Instance 02 call startup.bat %TITLE% 

instance2_shutdown.bat

 @echo off set CATALINA_BASE=C:\instance2 cd "%CATALINA_HOME%\bin" call shutdown.bat 

运行instance1_startup.bat和instance2_startup.bat,希望它能工作。