Commit 27853774 authored by Jim Jagielski's avatar Jim Jagielski
Browse files

Merge r1722177, r1722195, r1722229, r1722320, r1722328, r1722334, r1722350,...

Merge r1722177, r1722195, r1722229, r1722320, r1722328, r1722334, r1722350, r1722351, r1722358, r1722377, r1723953, r1724879, r1724992, r1724993, r1724995, r1725018, r1725031, r1725120, r1725328, r1725387, r1725489, r1725498, r1725499, r1725523, r1725545, r1725567, r1725581, r1725602, r1725822, r1725967, r1726038, r1726049, r1726051, r1726052, r1726055, r1725090, r1728326, r1737020 from trunk:

Commit framework impl of health-check module plus
required changes. The actual health checking is
currently in progress, but wanted to add in at
this stage.

Make aware of new status: Failed Health Check.
Store the number of current passes/fails in shm

finish looping logic... place-holder for actual checking

Better check

move to per server conf, useful for adding HealthCheckCondition

Now implement the condition ruleset definition. The
actual checking will be done in the actual health check
routine.

just check watched servers... use 'hc' prefix for sub directives

Check that we have names for both templates and
conditions

command changes

Don't bother w/ methods that return bodies. We don't
handle them now anyway.

Use enums and structs to keep things better organized

1st cut of 'simple' tcp check... We reuse various proxy
function and so this *could* be more streamlined, but
use this to show how the other would work, since we need
brigades, SSL/TLS support, etc.

Since every check needs this, do this in the main
check loop. Allows some optimizations.

move scope

pull this out... large enough for a func

Move to a set of health check workers, mapping to
each worker itself, instead of a single reused generic
worker.

some ordering optimization

Make balancer manager health-check aware

And we now allow for health checks via OPTIONS *

Leverage the OPTIONS code for HEAD as well...
So we now support: TCP, OPTIONS and HEAD.

Right now, anything other than an error (even a 404)
is consider a PASS.

Fill in APLOGNO.

I hope that doesn't result in merge trouble
for Jim.


Open up hook/scar to allow for passes/fails and
method to be changed via bal-man...

OPTIONS/HEAD proxy function should be diff from simple TCP check

For OPTIONS and HEAD, only 2xx and 3xx are considered "passing"
(until I implement the conditions expr testing)... honor
the pass/fail count and LOG_INFO when the health check enables
or disables a backend worker.

Start impl of expr conditions for runtime checks

Adjust log levels

correct error string

Use worker status character defines taken
from mod_proxy.h instead of explicit characters.

Noted by rpluem.


With the updated ap_expr, we can now check for the
returned response body, stored in kept_body

Assign log message tags


Implement expr lookup in mod_proxy_hcheck for
variables whose names start with "HC_" and for
the new function hc().

Currently only HC_BODY and hc(body) are supported.
Both return the saved body of the health check
response to be used in an expr that decides about
success of a check.


Fix copy&paste error in new function.


Try fixing new proxy_hcheck expr extension.

Interestingly mod_ssl using NULL as well,
but some other module I wrote uses parms->name.


Adjust

clash :)


Enabling a worker via health-check also moves them out of
ERROR more (which may have been set via the static
"health" check done via mod_proxy).

Some flow improvements...

Submitted by: jim, rjung, jim, jim, jim, jim, jim, jim, rjung, jim, jim, rjung, rjung, rjung, jim, jim, olegk, jim, jim
Reviewed/backported by: jim


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/branches/2.4.x@1744951 13f79535-47bb-0310-9956-ffa450edef68
parent 8924dc5f
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment