Hi guys,

I just had an incident with a stale nfs handle - where server suddenly
returned 500 errors for some requests (the stuff lying on that nfs :)

In this setup, I use haproxy to control the backends, and thus I'd like
it to retry requests giving 50* errors on "all other backends" - and
only return the error, if everyone responds this way.

This is what I do with Varnish in another setup (I simply wrote a short
50x handler and issue a restart) - and that nicely ensures that noone
EVER sees a 500 error, until it affects all backends - and then when the
"health checker" comes by - my health check will catch the server is
faulty and pull it out.

I'd like to do the same with haproxy, so a defective server never
effects production.

I don't want the server to be pulled totally out (like it would be,
using the observe feature) - because it might only be a small part of
the requests that fail.

In the "health check" - I can do more advanced analysis - like seeing
how big a percentage of requests that fail, before I decide to pull the
server out or not - to ensure that the risk of ending with NO backends
at all, is much lower :)

Any way to make haproxy retry requests with certain http response codes
X times (or just until all backends have been tried) ?

-- 
Regards,
Klavs Klavsen, GSEC - k...@vsen.dk - http://www.vsen.dk - Tlf. 61281200

"Those who do not understand Unix are condemned to reinvent it, poorly."
  --Henry Spencer


Reply via email to