У меня есть сервер с 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 для сервера моего приложения так, как мне это нужно?