Getting 502 instead of 503 when all backend servers are down running HAProxy behind Apache
Posted
by
scarba05
on Server Fault
See other posts from Server Fault
or by scarba05
Published on 2012-05-28T11:00:34Z
Indexed on
2012/06/06
22:41 UTC
Read the original article
Hit count: 362
I'm testing running HAProxy as a dedicated load balancer behind Apache 2.2, replacing our current configuration where we use Apache's load balancer. In our current, Apache only, set-up if all the backend (origin) servers are down Apache will serve a 503 service unavailable message. With HAProxy I get a 502 bad gateway response.
I'm using a simple reverse proxy rewrite rule in Apache
RewriteRule ^/(.*) http://127.0.0.1:8000/$1 [last,proxy]
In HAProxy I have the following (running in default tcp mode)
defaults
log global
option tcp-smart-accept
timeout connect 7s
timeout client 60s
timeout queue 120s
timeout server 60s
listen my_server 127.0.0.1:8000
balance leastconn
server backend1 127.0.0.1:8001 check observe layer4 maxconn 2
server backend1 127.0.0.1:8001 check observe layer4 maxconn 2
Testing connecting directly to the load balancer when the backend servers are down:
[root@dev ~]# wget http://127.0.0.1:8000/ test.html
--2012-05-28 11:45:28-- http://127.0.0.1:8000/
Connecting to 127.0.0.1:8000... connected.
HTTP request sent, awaiting response... No data received.
So presumably this is down to the fact that HAProxy accepts the connection and then closes it.
© Server Fault or respective owner