我有几个Tomcat安装,只有一个主要的应用程序(除了像pipe理器)。 除了更改默认的Tomcat主页以包含redirect到应用程序之外,还有更好的方法吗? 或者,更好的方法是,如何将http://domain.com:8080/app映射到http://domain.com:8080并将其他应用程序(如pipe理器)单独保留?
安装应用程序作为ROOT上下文。
这可以通过以下方式完成:
ROOT.war , webapps/ROOT目录中部署爆炸的war文件, "/" <Context path="/" docBase="${catalina.home}/webapps/app"/> 我几乎总是在Tomcat前面粘贴一个Apache,并通过AJP(mod_proxy_ajp或mod_jk)进行连接,因为Tomcat在静态内容服务方面的效率非常低,并且由于您描述的确切问题。 另外,通过粘贴前端,您可以使用重写规则保护/pipe理器和其他任何应用程序。 /经理也是一个频繁的攻击来源,这种技术可以防止外部世界完全达到目的。
要创build一个像你所描述的redirect,创build一个重写规则,其效果是:
# 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级别创build这样的规则。
如果你这样做,不要忘记JkUnmount或通过proxy_ajp排除你的静态内容,以便从Apache提供服务。