主持另一个ROOT.war Tomcat App

时间:2013-03-17 19:03:44

标签: tomcat

Tomcat目前正在托管我的正在使用的ROOT.war应用。

我需要测试一个新的ROOT.war,,但我不想阻止我的正在生产的应用程序运行。请注意,该应用需要部署在ROOT文件夹中。

最简单的方法是什么?

1 个答案:

答案 0 :(得分:2)

Tomcat可以像Apache HTTPD一样进行基于名称的虚拟主机托管。你需要

  • 在同一<Host>内向server.xml添加第二个Engine元素,但nameappBase
<Host name="app2.example.com" appBase="app2-webapps"
   unpackWARs="true" autoDeploy="true"
   xmlValidation="false" xmlNamespaceAware="false"/>
  • 将您的第二个ROOT.war放入app2-webapps
  • 如果您的Tomcat位于反向代理之后,请确保Host标头未经过触摸传递(对于带有mod_proxy的Apache HTTPD,这意味着设置ProxyPreserveHost On

现在,http://app2.example.com/*的请求将由您的新应用处理,对任何其他主机名的请求将转到旧的。

我使用这种技术在一个Tomcat中托管几个不同的生产应用程序,但我不建议将同一个Tomcat用于生产和开发/测试应用程序的混合。相反,使用不同的服务器或在不同端口上运行的第二个Tomcat实例更安全。