我試圖將Apache 2.2代理服務器配置爲指向多個Weblogic實例。除了一個小點之外,我對所有事情都做得很好。Apache 2.2具有Weblogic的ProxyPass - 無法使用root
我能得到這個工作:的ProxyPass/QA http://IP:PORT/
但我不能得到這個工作:的ProxyPass/http://IP:PORT/
我不明白爲什麼我不能將ProxyPass映射到根(/)
我試圖將Apache 2.2代理服務器配置爲指向多個Weblogic實例。除了一個小點之外,我對所有事情都做得很好。Apache 2.2具有Weblogic的ProxyPass - 無法使用root
我能得到這個工作:的ProxyPass/QA http://IP:PORT/
但我不能得到這個工作:的ProxyPass/http://IP:PORT/
我不明白爲什麼我不能將ProxyPass映射到根(/)
我相信Apache不允許它。衝突指令的順序和優先順序存在潛在的問題;如果您在/ QA比賽或/比賽之後收到/ QA /請求?我猜你可能試圖在同一地址/端口上映射多個託管服務器,而不必識別每個子路徑,即單個規則而不是多個。還有一個與documentRoot衝突。可以說,如果你在根上匹配,那麼Apache層有什麼意義 - 所有東西都是直接傳遞的,Apache本身並沒有提供任何東西。 (這並不意味着從來沒有這樣做的正確理由,但我可以理解Apache爲什麼會這麼想)。
我知道做到這一點的唯一方法是虛擬虛擬主機內(不知道這可能是唯一的監聽端口,但我是這麼認爲的):
<VirtualHost *:8080>
ProxyPass/http://IP:PORT/
ProxyPassReverse/http://IP:PORT/
</VirtualHost>
你也可以看看WebLogic代理插件:
<Location />
SetHandler weblogic-handler
</Location>
<IfModule mod_weblogic.c>
WebLogicHost IP
WebLogicPort PORT
</IfModule>
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>