На моем сервере у меня есть два приложения tomcat: 'скрытый' и 'открыто'. В скрытый приложение должно быть доступно только в локальной сети 192.168.0.0. В открыто приложение должно быть доступно для всех сетей.
Приложения работают на Tomcat 7.0.6, и запросы передаются из Apache 2.2.17 с помощью mod_proxy_ajp. Все это работает на сервере FreeBSD 8.2.
Веб-сервер Apache также обрабатывает корневой веб-сайт, который является статическим. Виртуальный хост не настроен (только один хост).
Я пока не нашел какой-либо примерной конфигурации, поэтому просто попытался объединить две простые конфигурации:
ProxyRequests Off
ProxyPreserveHost On
<Proxy /hidden>
Order Deny,Allow
Deny from all
Allow from 192.168
</Proxy>
<Proxy /open>
Order Deny,Allow
Allow from all
</Proxy>
ProxyPass /hidden ajp://localhost:8009/hidden/
ProxyPassReverse /hidden ajp://localhost:8009/hidden/
ProxyPass /open ajp://localhost:8009/open/
ProxyPassReverse /open ajp://localhost:8009/open/
В этой конфигурации оба приложения доступны из всех сетей. Я уже играл с настройками Allow / Deny. Этот показался мне наиболее логичным.
Кто-нибудь знает, что не так с моей конфигурацией?
Оли
В <Proxy>
Директива принимает полный URL-адрес - поскольку у вашего виртуального хоста может быть несколько из них, директива больше подходит, когда вы используете ее в качестве полного прокси.
Попробуйте изменить свои директивы на <Location>
блоки, которые должны применять разрешения так, как вы хотите:
<Location /hidden>
Order Deny,Allow
Deny from all
Allow from 192.168
</Proxy>
<Location /open>
Order Deny,Allow
Allow from all
</Proxy>