如何在不同端口上运行的tomcat中部署多个Web应用程序?

如何在tomcat中部署多个java web应用程序,它们将运行在不同的端口上? – 如何进行设置以便在不同的端口上运行不同的Web应用程序 – 为实现这一目标需要做些什么?

您需要在server.xml文件(tomcat_home / conf)中设置另一个服务。 如果你没有更改你的服务器文件,你应该已经有一个名为Catalina(我使用的是Tomcat 5.5,根据版本的不同,你可能会略有不同)

         

请注意,名称已从Catalina更改为Dev2,localhost更改为MyDev。 将这些更改为适合您的应用程序的任何内容。 端口和连接器也发生了变化。 设置新服务后,您需要将应用程序部署到正确的服务/端口。 您可以通过使用XML文件来完成此任务(请参阅虚拟主机 )

 Tomcat_Home/conf/Catalina/localhost/ 

 Tomcat_Home/conf/Dev2/MyDev/ 

对于您正在设置的相应端口

此时,您只需添加一些文件即可将服务指向您的应用程序。 作为一个例子,在Tomcat_Home/conf/Dev2/MyDev/我有一个名为Another.xml的文件这个文件包含以下内容

   

现在我可以使用urlhttp://127.0.0.1:8090/Another另一个访问新的应用程序如果我尝试使用我的默认端口8080访问它,我收到一个错误,因为没有为该给定端口部署应用程序。

有关此设置的几点注意事项。 如果使用VirtualVM查看应用程序,您会注意到它们共享相同的进程ID。 因此,您必须格外小心您的资源。 它们将使用相同的Heap空间,并且所有线程将显示在同一列表中。 如果您已登录您的应用程序(即Log4j),请确保您可以选择显示哪个线程正在进行工作,因为可能很难确定这将来自哪个端口/应用程序。

正如Bozho已经指出的那样,简单地让两个Tomcat实例运行而不是一个服务器监听多个端口可能更容易。

你最好有多个tomcat安装。 这会更容易。

我想你可以在server.xml注册多个 ,然后过滤掉上下文,但这很乏味且听起来不对。

抱歉,这是一个答案。 在这个问题上,我没有看到任何评论能力。 Mabye这个问题太老了,或者我的名声不够高。

但是,我一直在研究同样的问题。 您将不得不更多地了解Tomcat,http服务器和Java系统环境如何使用相同的实例。 我已经读过它也很慢的地方。

最好的选择是单独的实例。 有两种相当简单的方法:A /对于Ubuntu,您可以使用SVN来获取此脚本: http : //ubuntuforums.org/showthread.php? t = 1211517 http://code.google.com/p / Tomcat的LINUX /

B /您自己的每个用户实例。 http://brian.pontarelli.com/2007/09/17/multiple-tomcat-instances-on-ubuntu/

最后一个是为tomcat 5.5编写的,但可能适用于Tomcat 6

但是,Linux上最新Tomcat的多个JVM实例的最佳方向如下: http : //www.puschitz.com/InstallingTomcat.html

您可以在apache中使用mod-proxy将自定义端口重定向到标准端口。

mod代理