Tomcat同时有多个实例

Bru*_*ein 25 windows tomcat multiple-instances catalina

我正在尝试运行Tomcat的多个实例,但即使在配置了不同的端口用于侦听和关闭第二个实例之后,它仍继续尝试侦听8080(配置为8081).我读到我必须设置不同的值CATALINA_BASE.从所有在线文章中,没有一个实际显示在哪个文件中可以设置此变量.

我在哪里以及如何为我的Tomcat实例设置CATALINA_BASE C:\apache-tomcat-7.0.39

Gor*_*sic 51

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

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

  1. 创建文件夹C:\ instance1.从C:\ apache-tomcat-7.0.39 复制conf,webapps临时文件夹,并将它们粘贴到C:\ instance1.您可以从位于instance1下的webapps和临时文件夹中删除内容,但不要触摸conf内容.

  2. 现在复制>粘贴C:\ instance1并将其重命名为instance2.这样,instance1instance2都将具有相同的内容.

  3. 转到C:\ instance2\conf,编辑server.xml并更改这些端口的编号(我将其标记为XXXX):

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

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

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

  4. 将您想要的任何内容部署到instance1\webapps和instance2\webapps中

  5. 在C:\下创建以下4个批处理文件

instance1_startup.bat

@echo关闭

设置CATALINA_BASE = C:\ instance1

cd"%CATALINA_HOME%\ bin"

设置TITLE =我的Tomcat实例01

调用startup.bat%TITLE%

instance1_shutdown.bat

@echo关闭

设置CATALINA_BASE = C:\ instance1

cd"%CATALINA_HOME%\ bin"

调用shutdown.bat

instance2_startup.bat

@echo关闭

设置CATALINA_BASE = C:\ instance2

cd"%CATALINA_HOME%\ bin"

设置TITLE =我的Tomcat实例02

调用startup.bat%TITLE%

instance2_shutdown.bat

@echo关闭

设置CATALINA_BASE = C:\ instance2

cd"%CATALINA_HOME%\ bin"

调用shutdown.bat

  1. 运行instance1_startup.batinstance2_startup.bat,希望它应该工作.


Jas*_*ske 32

我运行两个Tomcat副本的最简单方法涉及以下步骤(我试图运行两个不同版本的tomcat,6和7):

  • 在不同的文件夹中建立2个tomcat副本(如果它们是不同的版本,那么这很容易,如果它们是相同的版本,那么你需要以其他方式区分.Tomcat创建了很多文件来管理它以便运行可能无法使用具有相同工作目录的两个实例)

  • 更改tomcat正在侦听的以下端口 server.xml

    • <Connector port="8080"> < - 这是tomcat用于响应HTTP请求的端口
    • <Connector port="8009" protocol="AJP/1.3" redirectPort="8443" /> < - 这定义了两个端口,一个用于AJP连接器(如果在Apache或IIS服务器后面使用tomcat,则使用)和用于HTTPS流量的端口
    • <Server port="8005" shutdown="SHUTDOWN"> < - 这是Tomcat用于响应SHUTDOWN事件的端口

最后,如果您将其作为Windows服务运行,则需要为每个实例建立不同的服务名称(您可以在安装过程中执行此操作,Tomcat 7的默认设置是tomcat7).一旦Tomcat运行,它的所有配置字段都使用相对路径,因此您无需触摸CATALINA_BASE

  • 是的,这是我首先尝试的,我有2个文件夹,有2个不同版本的TomCat,7.0.37和7.0.39.但即使我在.39上编辑`server.xml`,它仍然试图听8080和其他默认值. (3认同)