Hi,
We want to maintain stickiness to a backed server based on host header so
"balance hdr(host)" works pretty well for us, however as soon at the backend
hits max connection, requests pile up in the queue eventually timeout with a
503 and sQ in the logs. Is there a way to redispatch the requests to other
servers ignoring the persistence on queue timeout?
My config:
frontend test
bind *:7444
mode http
log global
option httplog
capture request header host len 32
default_backend test_backend
backend test_backend
balance hdr(host)
server wsgi_11 qa-vm01:4180 maxconn 5 check inter 30000
server wsgi_22 qa-vm01:4180 maxconn 2 check inter 30000
Logs:
Aug 29 07:32:21 qa-vm02 haproxy[24532]: 172.27.202.12:17288
[29/Aug/2013:07:32:11.466] eos test_backend/wsgi_11 0/10000/-1/-1/10000 503
212 sQ-- 6/6/6/5/0 19/0 {qa-vm02:7300|||||||} "GET /wsgi/print_headers.py
HTTP/1.1"
Aug 29 07:32:21 qa-vm02 haproxy[24532]: 172.27.202.12:17289
[29/Aug/2013:07:32:11.467] eos test_backend/wsgi_11 0/10000/-1/-1/10000 503
212 sQ-- 5/5/5/5/0 20/0 {qa-vm02:7300|||||||} "GET /wsgi/print_headers.py
HTTP/1.1"
Aug 29 07:32:21 qa-vm02 haproxy[24532]: 172.27.202.12:17289
[29/Aug/2013:07:32:11.467] eos test_backend/wsgi_11 0/10000/-1/-1/10000 503
212 sQ-- 5/5/5/5/0 20/0 {qa-vm02:7300|||||||} "GET /wsgi/print_headers.py
HTTP/1.1"
Thanks
Sachin