Обслуживание приложения tomcat6 в корне документа с использованием apache2

У меня есть сервер с apache2, который в настоящее время обслуживает несколько приложений на экземпляре tomcat6. Они уже настроены и работают, и есть правило перезаписи, например:

RewriteCond %{REQUEST_URI} ^/app1 [NC,OR]
RewriteCond %{REQUEST_URI} ^/app2 [NC,OR]
RewriteCond %{REQUEST_URI} ^/app3 [NC,OR]
RewriteCond %{REQUEST_URI} ^/aap4 [NC,OR]
RewriteCond %{REQUEST_URI} ^/app5 [NC,OR]
RewriteCond %{REQUEST_URI} ^/app6 [NC]
RewriteCond %{SERVER_PORT} !443
RewriteRule ^(.*)$ https://%{SERVER_NAME}$1 [R,L]

тогда у него есть JKMounts:

JkMount /app1/*.jsp tomcat.web
JkMount /app2* tomcat.web
JkMount /app3* tomcat.web
JkMount /app6* tomcat.web
JkMount /app6* tomcat.web
JkMount /app6* tomcat.web

И work.properties выглядит так:

workers.tomcat_home=/usr/local/tomcat
workers.java_home=/usr/local/java
ps=\

worker.list=tomcat.web

# Set properties for worker 'tomcat.web' (ajp13)
worker.tomcat.web.type=ajp13
worker.tomcat.web.host=localhost
worker.tomcat.web.port=8009
worker.tomcat.web.cachesize=10
worker.tomcat.web.cache_timeout=600
worker.tomcat.web.socket_keepalive=1
worker.tomcat.web.connection_pool_size=150
worker.tomcat.web.connection_pool_minsize=75
worker.tomcat.web.connection_pool_timeout=10000

Я добавил новую установку tomcat, и там у меня запущено новое приложение под названием «онлайн». Итак, я добавил нового рабочего, вот так (также добавил имя рабочего в worker.list):

# Set properties for worker 'tomcatb.web' (ajp13)
worker.tomcatb.web.type=ajp13
worker.tomcatb.web.host=localhost
worker.tomcatb.web.port=8109
worker.tomcatb.web.cachesize=10
worker.tomcatb.web.cache_timeout=600
worker.tomcatb.web.socket_keepalive=1
worker.tomcatb.web.connection_pool_size=150
worker.tomcatb.web.connection_pool_minsize=75
worker.tomcatb.web.connection_pool_timeout=10000

а затем я просто добавил новое УСЛОВИЕ поверх всех остальных УСЛОВИЙ

RewriteCond %{REQUEST_URI} ^/online [NC,OR]

и новый JKMount, подобный этому:

JkMount /online* tomcatb.web

Здесь все работает нормально. Я могу получить доступ к моему приложению в

http://MYSERVER/online

и это работает нормально. Теперь мне нужно иметь возможность обслуживать это приложение, просто войдя

http://MYSERVER/

но я не смог этого добиться. Я пытался написать такое правило перезаписи (удалив предыдущий COND и добавив это):

RewriteCond %{REQUEST_URI} ^/online [NC,OR]
RewriteCond %{SERVER_PORT} !443
RewriteRule ^online(.*)$ / [PT,QSA,L]

но это не работает, и когда я иду в

http://MYSERVER/

Я получаю сообщение об ошибке:

Forbidden
You don't have permission to access / on this server.

Может ли кто-нибудь указать мне правильное направление, как настроить apache для сервера моего приложения так, как мне это нужно?


person alejo    schedule 16.07.2012    source источник


Ответы (1)


Я решил это, не уверен, что сделал это, используя лучший подход, но это то, что я сделал в конце (что выполнило мое требование, так что на данный момент это достаточно хорошо)

Я добавил новое условие перезаписи, например:

RewriteCond %{REQUEST_URI} ^/ [NC,OR]

Тогда этот JKMount

JkMount /* tomcatb.web

И поскольку приложение, которое мне нужно для запуска на сервере в отдельном экземпляре tomcat, я удалил все веб-приложения и развернул войну как ROOT.war.

Перезапустите все, и теперь, если я перейду к

http://MYSERVER/

он отображает содержимое, которое я ожидаю

person alejo    schedule 17.07.2012