Я использую Apache2.2 и Tomcat7.0 в Windows.
Как настроить JkMount, чтобы разрешить доступ к любому развернутому веб-приложению на Tomcat в форме domain.com/tomcat/nameOfWebapp?
Вот мои worker.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, я могу заставить работать веб-приложение менеджера, но как я могу заставить его загружать любое приложение, развернутое в Tomcat?
То, что у меня есть сейчас, дает мне эту ошибку:
The requested resource (/tomcat/manager/) is not available.
при попытке посетить domain.com/tomcat/manager. Ошибка выдается Tomcat, поэтому он доходит до нее, но по какой-то причине не хочет ее загружать.
Спасибо
Похоже, я хотел, чтобы это было в моем httpd.conf:
JkMount /*.jsp worker1
JkMount /*/tomcat/ worker1
Если вы хотите, чтобы все было доступно, скажем, в / tomcat / [webappname], вы можете сделать это следующим образом:
JkMount /tomcat/* worker1
Затем переименуйте WAR-файлы всех ваших веб-приложений, чтобы использовать вложенные пути, которые попадают в / tomcat, например:
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
Эффект будет заключаться в том, что теперь все веб-приложения будут иметь / tomcat / app1 (или что-то еще) в качестве пути контекста. Если вы написали их правильно, это перемещение не должно быть проблемой, и вы можете разрешить httpd продолжать обслуживать запросы (даже .jsp, если хотите) на пути за пределами / tomcat /.