Apache config to redirect https to http weblogic module

apache-2.2httpsload balancingreverse-proxyweblogic

I have 3 Machines which I am configuring this way to work.

MachineA(https) -> MachineB(reverseproxy) -> MachineC(App)

MachineA – The public facing load balancer where SSL certificate is installed
MachineB – Apache http server to which the request from MachineA will be redirected and will be forwarded to Application server using mod_wls
MachineC – Weblogic Application server where app is deployed

I have configured my MachineB http config this way:

LoadModule weblogic_module modules/mod_wl.so
RewriteEngine On
RewriteCond %{HTTPS} on
RewriteRule ^$ http://%{HTTP_HOST} [L,R]

<IfModule mod_weblogic.c>
    ProxyPreserveHost   On
    RewriteEngine       On
    WebLogicCluster wlsrv:7001
    Debug ALL
    MatchExpression /
    DebugConfigInfo ON
    WLLogFile /var/log/wlproxy-qa.log
 <Location /console>
    SetHandler weblogic-handler
    ProxyPass http://wlsrv:7001/console
    ProxyPassReverse http://wlsrv:7001/console
 </Location>
 <Location /App1>
    SetHandler weblogic-handler
    ProxyPass http://wlsrv:7001/App1
    ProxyPassReverse http://wlsrv:7001/App1
 </Location>
</IfModule>

The requests are coming to access the first webpage from application, but after that the URI is not getting forwarded correctly and giving 400.

Is my configuration of MachineB is correct to handle this ?

Best Answer

You are mixing proxypass directives belonging to mod_proxy with directives that belong to weblogic plugin through the handler.

The correct config is like follows (adapting your config):

LoadModule weblogic_module modules/mod_wl.so
<IfModule mod_weblogic.c>
    WebLogicCluster wlsrv:7001
    Debug ALL
    DebugConfigInfo ON
    WLLogFile /var/log/wlproxy-qa.log
 <Location /console>
    SetHandler weblogic-handler
 </Location>
 <Location /App1>
    SetHandler weblogic-handler
 </Location>
</IfModule>