dragonmantank Asked: 2009-09-12 05:57:19 +0800 CST2009-09-12 05:57:19 +0800 CST 2009-09-12 05:57:19 +0800 CST 使Tomcat直接进入应用程序 772 我有一些 Tomcat 安装,其中只有一个主应用程序(除了管理器之类的东西)。除了更改默认的 Tomcat 主页以包含对应用程序的重定向之外,还有更好的方法吗?或者,更好的是,我如何将 http://domain.com:8080/app 映射到http://domain.com:8080而让其他应用程序(如管理器)不理会? tomcat 2 个回答 Voted Best Answer Gene Gotimer 2009-09-12T06:08:45+08:002009-09-12T06:08:45+08:00 安装应用程序作为ROOT上下文。 这可以通过以下方式完成: 将war文件部署为ROOT.war, webapps/ROOT在目录中部署分解的war文件, "/"通过 Tomcat 管理器将应用程序部署到路径, 在 Tomcat 配置中添加Context 部分:<Context path="/" docBase="${catalina.home}/webapps/app"/> Aaron Brown 2009-09-13T04:01:52+08:002009-09-13T04:01:52+08:00 我几乎总是将 Apache 放在 Tomcat 前面并通过 AJP(mod_proxy_ajp 或 mod_jk)连接,因为 Tomcat 在提供静态内容方面的效率非常低,并且由于您描述的确切问题。此外,通过粘贴前端,您可以使用重写规则保护 /manager 和任何其他应用程序。/manager 也是一个频繁的攻击源,这种技术可以防止外界完全接触到它。 要创建您所描述的重定向,请创建一个重写规则以实现: # if the URL doesn't go to /myapp /admin /jkstatus /server-status or /awstats, redirect to /myapp RewriteCond %{REQUEST_URI} !^/myapp RewriteCond %{REQUEST_URI} !^/admin RewriteCond %{REQUEST_URI} !^/jkstatus RewriteCond %{REQUEST_URI} !^/server-status RewriteCond %{REQUEST_URI} !^/awstats RewriteRule .* /myapp [R,L] 我确信这样的事情可以在 Tomcat 层完成,但我的偏好是保持 Tomcat 的可移植性和简单性,并在 Apache 级别创建任何这样的规则。 如果您这样做,请不要忘记 JkUnmount 或通过 proxy_ajp 排除您的静态内容,以便从 Apache 提供服务。
安装应用程序作为
ROOT
上下文。这可以通过以下方式完成:
ROOT.war
,webapps/ROOT
在目录中部署分解的war文件,"/"
通过 Tomcat 管理器将应用程序部署到路径,<Context path="/" docBase="${catalina.home}/webapps/app"/>
我几乎总是将 Apache 放在 Tomcat 前面并通过 AJP(mod_proxy_ajp 或 mod_jk)连接,因为 Tomcat 在提供静态内容方面的效率非常低,并且由于您描述的确切问题。此外,通过粘贴前端,您可以使用重写规则保护 /manager 和任何其他应用程序。/manager 也是一个频繁的攻击源,这种技术可以防止外界完全接触到它。
要创建您所描述的重定向,请创建一个重写规则以实现:
我确信这样的事情可以在 Tomcat 层完成,但我的偏好是保持 Tomcat 的可移植性和简单性,并在 Apache 级别创建任何这样的规则。
如果您这样做,请不要忘记 JkUnmount 或通过 proxy_ajp 排除您的静态内容,以便从 Apache 提供服务。