我可以在同一台机器上运行两个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的所有端口。 我不记得它是否还有一个特殊的“本地控制”端口,但如果是这样的话,它们也需要不同。
添加一些指针来详细说明如何完成这些操作:
- 在一台服务器上运行多个Tomcat实例。
- 以上的旧版本 。
- 在这种设置中扮演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)的经验/过程:
-
根据http://www.ntu.edu.sg/home/ehchua/programming/howto/Tomcat_HowTo.html设置Tomcat
-
但是,Tom1启动正常,但不是Tom2。
-
所以除了上面的内容,在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)= 900271行:Tom1redirect端口= 8443
71行:Tom2redirect端口= 8444第90行:Tom1连接器(ajp)= 8009
第90行:Tom1redirect= 8443
第90行:Tom2连接器(ajp)= 8010
第90行:Tom2redirect= 8444102行:Tom1引擎名称=“Catalina1”
102行:Tom2引擎名称=“Catalina2” -
启动每个服务器
瞧!
我遇到过类似的情况, 这里提到的答案很简单,很简单。
假设你在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,希望它能工作。