2010-10-08 4 views
2

Я пытаюсь настроить прокси-сервер Apache 2.2, чтобы указать на несколько экземпляров Weblogic. Я хорошо справляюсь со всем, кроме незначительного.Apache 2.2 ProxyPass с Weblogic - не могу использовать root

я могу получить эту работу: ProxyPass/QA http://IP:PORT/

, перейдя в http://IP:PORT/QA

Но я не могу получить эту работу: ProxyPass/http://IP:PORT/

, перейдя в http://IP:PORT/

Я не понимаю, почему у меня нет карты ProxyPass для корня (/)

ответ

0

Я считаю, что Apache просто этого не допускает. Здесь есть потенциальная проблема с порядком и приоритетом противоречивых директив; если вы получите запрос/QA/должен ли он следовать за соответствием/QA или совпадением /? Я думаю, вы можете попытаться сопоставить несколько управляемых серверов на одном и том же адресе/порту, не указывая каждый подпуть, т. Е. Одно правило вместо многих. Там все еще есть столкновение с documentRoot. Возможно, если вы согласны с корнем, то в чем смысл уровня Apache - все проходит прямо, и ничто не обслуживается самим Apache. (Это не значит, что для этого не существует веских причин, но я могу понять, почему Apache может это подумать).

Единственный способ я знаю, чтобы сделать это внутри фиктивного виртуального хоста (не уверен, что это может быть на только слушать порт, но я так думаю):

<VirtualHost *:8080> 
    ProxyPass/http://IP:PORT/ 
    ProxyPassReverse/http://IP:PORT/ 
</VirtualHost> 

Вы также можете посмотреть на WebLogic proxy plug-in:

<Location /> 
    SetHandler weblogic-handler 
</Location> 

<IfModule mod_weblogic.c> 
    WebLogicHost IP 
    WebLogicPort PORT 
</IfModule> 
0

Alex, спасибо за вашу помощь!

Для других, пытающихся настроить аналогичную среду, я вставляю то, что я сделал ниже.

ProxyRequests OFF 

LoadModule proxy_module modules/mod_proxy.so 
LoadModule proxy_http_module modules/mod_proxy_http.so 
LoadModule proxy_balancer_module modules/mod_proxy_balancer.so 
LoadModule headers_module modules/mod_headers.so 

<Proxy *> 
    Order deny,allow 
    Allow from all 
</Proxy> 

Header add Set-Cookie "ROUTEID=.%{BALANCER_WORKER_ROUTE}e; path=/" env=BALANCER_ROUTE_CHANGED 
<Proxy balancer://cluster> 
    BalancerMember http://IP:PORT/ route=1 
    BalancerMember http://IP:PORT/ route=2 
    ProxySet stickysession=ROUTEID 
</Proxy> 

<VirtualHost *:80> 
    ProxyPass/balancer://cluster/ 
    ProxyPassReverse/balancer://cluster/ 
</VirtualHost>