How to make apache httpd load balancer sends to a member that is in Err.

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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 in an 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:7805 route=191_181_7805 redirect=191_180_7803 keepalive=on timeout=1200
       BalancerMember https://256.XX.57.180:7803 route=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


[Index of Archives]     [Open SSH Users]     [Linux ACPI]     [Linux Kernel]     [Linux Laptop]     [Kernel Newbies]     [Security]     [Netfilter]     [Bugtraq]     [Squid]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Samba]     [Video 4 Linux]     [Device Mapper]

  Powered by Linux