我在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