我可以在同一台机器上运行两个具有两个不同端口的Tomcat服务器吗?它会造成任何问题吗?当我运行tomcat时,它将在任务管理器中创建javaw.exe
文件。
除了改变Connector port
为protocol="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属性。
添加一些指向如何实现的详细说明:
这是我在Windows上运行两个Tomcats(Tom1和Tom2)的经验/过程:
瞧!
我遇到了类似的情况,答案提到了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
汤姆