httpd-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From James Harrison <jamesaharriso...@yahoo.co.uk>
Subject [users@httpd] How to make apache httpd load balancer sends to a member that is in Err.
Date Thu, 20 Jan 2011 14:28:42 GMT
Hello.

This is quite an urgent plea for help.

I am using apache httpd 2.2.17 on Windows 2008 server as a gateway to our 
backend systems. The backend are two IBM's Websphere Message Broker (v7) system, 
that uses SOAP messages to send information back and forth. There are two hosts 
(machines) running the Broker software inan active-active configuration.

There are two ports that are available for communication from the httpd to the 
Broker (7803 and 7805), however, the actual services are URL based, so to 
communicate to a service, I would use: https://{hostname}:7803/url/path and I 
wouldget a response.


I have four major problems:
1. Broker services can switch from one machine to another at any time and httpd 
doesn't know this until a request is sent and httpd returns error code 404 and 
the SOAP request is lost.

2. I have the two Broker communication ports in a load balancer configuration 
and I use (failonstatus) to check for backend errors. httpd still sends SOAP 
requests to load balancer members in "Err"!

3. The first request to a member in Err results in return code 404,  from that 
point the load balancer will not use that member, however this  means that the 
initial request is lost.

4. When requests stop coming into the httpd server, after a timeout occurs and 
the above problem (3) occurs again.

Here is my configuration for the load balancer and one of the services:


# ------------------------------------------------------------

Header add Set-Cookie "ROUTEID=.%{BALANCER_WORKER_ROUTE}e; 
path=/"env=BALANCER_ROUTE_CHANGED

<Proxy balancer://mycluster nofailover=Off stickysession=ROUTEID 
failonstatus=404,301,500>
       BalancerMember https://256.XX.57.181:7805route=191_181_7805 
redirect=191_180_7803 keepalive=on timeout=1200
       BalancerMember https://256.XX.57.180:7803route=191_180_7803 status=+H 
keepalive=on timeout=1200
       ProxySet lbmethod=byrequests timeout=600
</Proxy>

#  https://256.xx.xx.191/balancer-manager
ProxyPass /balancer-manager !

ProxyPass / balancer://mycluster/

# GeoSupportService service
<location /GeographyServices/ GeoSupportService_v1_0>
       ProxyPass balancer://mycluster/
</Location>

<Location /balancer-manager> 
       SetHandler balancer-manager
       Order Allow,Deny
       Allow from all
</Location>

ErrorLog logs/VirtualHosterror.log 
LogLevel error
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
CustomLog logs/VirtualHostaccess.log common
 

# ------------------------------------------------------------

I hope someone can help.

Many thanks,
James Harrison


      
Mime
View raw message