让Apache在Tomcat的webapps文件夹中加载所有servlet

我在Windows上运行Apache2.2和Tomcat7.0。

如何设置JkMount以允许以domain.com/tomcat/nameOfWebapp的forms访问Tomcat上的任何已部署的Web应用程序?

这是我的workers.properties:

# Define 1 real worker using ajp13 worker.list=worker1 # Set properties for worker1 (ajp13) worker.worker1.type=ajp13 worker.worker1.host=localhost worker.worker1.port=8009 

这里是我的httpd.conf的相关部分:

 LoadModule jk_module modules/mod_jk.so <IfModule jk_module> JkWorkersFile D:/servers/tomcat7.0/conf/workers.properties JkLogFile D:/servers/tomcat7.0/logs/mod_jk.log JkLogStampFormat "[%b %d %Y - %H:%M:%S] " JkRequestLogFormat "%w %V %T" JkLogLevel info JkOptions +ForwardKeySize +ForwardURICompat -ForwardDirectories Alias /tomcat "D:/servers/tomcat7.0/webapps/" <Directory "D:/servers/tomcat7.0/webapps/"> AllowOverride None Allow from all </Directory> <Location /*/WEB-INF/*> deny from all </Location> JkMount /tomcat/* worker1 </IfModule> 

如果我只是做一些像JkMount / manager * worker1的东西,我可以让pipe理器webapp工作,但我怎么能得到它加载任何部署到Tomcat的应用程序?

我现在所给的这个错误是:

 The requested resource (/tomcat/manager/) is not available. 

当试图访问domain.com/tomcat/manager。 这个错误是由Tomcat给出的,所以它正在接近它,但由于某种原因,它不想加载它。

谢谢

如果你想让所有的东西在/ tomcat / [webappname]下面都可用,那么你可以这样做:

 JkMount /tomcat/* worker1 

然后,将所有Web应用程序的WAR文件重命名为使用所有属于/ tomcat的嵌套path,如下所示:

 CATALINA_BASE/webapps$ mv ROOT.war tomcat.war CATALINA_BASE/webapps$ mv app1.war tomcat#app1.war CATALINA_BASE/webapps$ mv app2.war tomcat#app3.war CATALINA_BASE/webapps$ mv app3.war tomcat#app3.war 

现在的效果是,所有的webapps都有/ tomcat / app1(或其他)作为上下文path。 如果你写的是正确的,那么这个重定位应该不成问题,你可以允许httpd继续为/ tomcat /之外的path提供请求( 如果你愿意的话,也可以是.jsp)

看起来像我想在我的httpd.conf中有这个:

 JkMount /*.jsp worker1 JkMount /*/tomcat/ worker1