Tomcat 7: 在 webapp 的子目录中部署一个 war 文件

Tomcat 7: Deploy a war file inside sub directory of webapp

如果我们将 war 文件放在 tomcat 的 webapps 文件夹中,那么它会在我们启动服务器时部署它,但当我们将 war 文件位于 webapps 的子文件夹中。 有什么方法可以在 webapps 的子目录中实现此部署过程?

我们可以在 TOMCAT_HOME/conf/server.xml.

中更改 war 部署路径(应用程序基目录)
<Host name="localhost"  appBase="webapps\your_directory"
        unpackWARs="true" autoDeploy="true">

在使用自动部署时,如果您希望在 server.com/path/app 访问您的应用程序,您可以通过将 war 文件命名为“path#app.war”然后将其放入 webapps 来实现此目的目录。 在自动部署期间,将在“${CATALINA_HOME}/webapps/”下创建一个名为“path#app”的目录,您的应用程序将可以在所需的 URL 路径中访问。

您也可以选择将其保留在原处并指示 Tomcat 前面的反向代理进行重定位,如果反向代理是 Apache HTTPD,则使用 ProxyPass /path/app http://tomcat-server/app ProxyPassReverse /path/app http://tomcat-server/app 规则。 ProxyPass/ProxyPassReverse 可参考 here.