У меня вопрос по прокси и модулю ajp.
На моей машине есть веб-сервер Apache и контейнер сервлетов Tomcat.
На Tomcat запущено мое веб-приложение java.
На Apache у меня есть несколько сервисов, и я могу назвать их так:
http://myhos/service1
http://myhos/service2
http://myhos/service3
Я бы настроил коннектор ajp для вызова моего веб-приложения tomcat из Apache. Я бы что-нибудь как http://myhost
для вызова веб-приложения Tomcat.
Итак, я настроил свой apache таким образом ... и у меня есть то, что я хотел: я могу использовать http://myHost
для визуализации веб-приложения Tomcat от Apache.
<VirtualHost *:80>
ProxyRequests off
ProxyPreserveHost On
ServerAlias myserveralias
ErrorLog logs/error.log
CustomLog logs/access.log common
<Proxy *>
Order deny,allow
Allow from all
</Proxy>
ProxyPass /server-status !
ProxyPass /balancer-manager !
ProxyPass / balancer://mycluster/ stickysession=JSESSIONID nofailover=Off maxattempts=1
<Proxy balancer://mycluster>
BalancerMember ajp://myIp:8009 min=10 max=100 route=portale loadfactor=1
ProxySet lbmethod=bytraffic
</Proxy>
<Location /balancer-manager>
SetHandler balancer-manager
Order deny,allow
Allow from localhost
</Location>
LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined
LogFormat "%h %l %u %t \"%r\" %>s %b" common
LogFormat "%{Referer}i -> %U" referer
LogFormat "%{User-agent}i" agent
</VirtualHost>
Но теперь я не могу использовать службы apache:
Если я использую http://myhos/service1
У меня ошибка, потому что apache пытается выполнить поиск service1 в моем tomcatWebApp.
Есть способ исправить?
Вы можете предотвратить проксирование ваших служб Apache в Tomcat, используя !
синтаксис исключения, как вы уже делаете для server-status
и balancer-manager
:
ProxyPass /service1 !
ProxyPass /service2 !
ProxyPass /service3 !