On 02.06.2009 15:24, Kevac Marko wrote: > On Tue, Jun 2, 2009 at 4:15 PM, Nick Kew <[email protected]> wrote: >> How is the balancer supposed to know that one valid HTTP response >> is an error while another is correct? A 404 or other error response >> doesn't mean there's a problem with the server! > > These HTTP responses can be configured in httpd.conf. Something like: > > PROXY_BALANCER_RETRY 404 > PROXY_BALANCER_RETRY 405 > PROXY_BALANCER_RETRY 406 > > Yes, you are right, 404 does not mean that there is an error, but it > could. I'd rather try asking few more workers (attempt limit) before > returning error, than return right now error. > > Feature that I am talking about gives freedom. It should be very > useful when creating high availability systems. Right now mod_proxy > declares policy that only theeese errors are true errors and only if > getting these we should retry. I think it is not right.
You have chosen an especially problematic example. If a "not found" triggers error status for the worker, then you will have continuous denial of service. Nearly every productive web server I know of, has every now and then (most of them more often) a "not found" in the logs. Examples are people don't have a favourites icon, have broken links, broken proxies in between, the usual attacker URLs e.g. for mysqladmin etc. Any random URL I send to your web server will trigger a "not found". You said "make it configurable". I doubt, that you will find many cases, that are really worth making them configurable, i.e. they happen in real world with a broken backend, but still can be used as a stable indicator for a broken backend. Regards, Rainer
