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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了我可以在同一台机器上运行两个tomcat实例吗?相关的知识,希望对你有一定的参考价值。

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

答案

除了改变Connector portprotocol="HTTP/1.1"描述在下面的答案之一。

我认为需要更改“关闭”的服务器端口

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

还有AJP港口号。

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

如果要并行运行多个tomcat实例。

另一答案

是的!您可以。您需要将端口更改为另一个实例。

为此,请按照步骤操作。

1.)在{Tomcat安装文件夹} \ conf \中找到server.xml

2.)查找以下类似声明

<!-- 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上运行。将Connector port =“8080”端口更改为任何其他端口号。

例如

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

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

另一答案

是的,这绝对没问题。我已经在很多场合做过了。您需要检查所有用于Tomcat的端口。我不记得它是否仍然有一个特殊的“本地控制”端口,但如果是这样,那些也需要不同。

另一答案

通常我们也设置CATALINA_HOME属性。所以启动脚本首先读取catalina_home,然后从中找出其余的路径。如果设置了此环境变量,并且尝试从任何复制粘贴tomcat安装位置运行tomcat,则将运行CATALINA_HOME指向的tomcat。

因此,在从同一台机器运行两个tomcat时,请删除CATALINA_HOME属性。这样,它将根据您运行启动脚本的目录设置CATALINA_HOME属性。

另一答案

添加一些指向如何实现的详细说明:

  1. Step by step在一台服务器上运行多个Tomcat实例。
  2. 以上的older version
  3. Explanation的各种环境变量和文件夹,在这种设置中发挥作用。
另一答案

这是我在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 / change以下(在Tomcat 6.0.44,JDK 1.6.0_45上): 第22行:Tom1关闭端口= 9001 第22行:Tom2关闭端口= 9002 第53行:Tom1服务名称=“Catalina1” 第53行:Tom2服务名称=“Catalina2” 第69行:Tom1连接器(http)= 9001 第69行:Tom2连接器(http)= 9002 第71行:Tom1重定向端口= 8443 第71行:Tom2重定向端口= 8444 第90行:Tom1连接器(ajp)= 8009 第90行:Tom1重定向= 8443 第90行:Tom2连接器(ajp)= 8010 第90行:Tom2重定向= 8444 第102行:Tom1引擎名称=“Catalina1” 第102行:Tom2引擎名称=“Catalina2”
  4. 启动每个服务器

瞧!

另一答案

我遇到了类似的情况,答案提到了here,它以清晰简洁的方式解决了这个问题。

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

确保设置了CATALINA_HOME系统/用户变量,并指向C:\ apache-tomcat-7.0.39

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

将您想要的任何内容部署到instance1 \ webapps和instance2 \ webapps中在C:\下创建以下4个批处理文件

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,希望它应该可以工作。

另一答案

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

另一答案

如前所述,您可以省略CATALINA_HOME环境变量并使用catalina.sh脚本来管理容器的生命周期,或者您可以定义另一个变量(如CATALINA_HOME1)以指向新的tomcat的安装目录并将其catalina.sh脚本修改为使用CATALINA_HOME1而不是原始的CATALINA_HOME引用。

在任何情况下,您都可以通过省略任何名为CATALINA_HOME引用的环境变量并将其链接到相应的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

然后像这样(从任何地方)开始你的tomcats:

catalina1 start
catalina2 start

汤姆

以上是关于我可以在同一台机器上运行两个tomcat实例吗?的主要内容,如果未能解决你的问题,请参考以下文章

我可以在同一台机器上运行多个elasticsearch实例进行日志聚合吗?

JBoss 和单独的 TomCat 在同一台机器上

可以在同一台计算机上运行具有不同配置文件的同一应用的两个实例吗?

当多个java程序在同一台机器上运行时

可以在同一台机器上安装两个不同版本的 Android Studio 吗?

我可以在同一台计算机上运行两个 Web 服务器吗?