Checkout Tools
  • last updated 8 hours ago
Constraints: committers
Constraints: files
Constraints: dates
Merge r1822849, r1822858, r1822878, r1822879, r1822883, r1828485, r1828493 from trunk:

* When mod_http2 is loaded more then ThreadsPerChild backend connections can

be useful as mod_http2 has an additional thread pool on top of


But leave the default with ThreadsPerChild.

* Add some some comment why we do not limit hmax any longer

mod_proxy: follow up to r1822849.

Get the help(er) of mod_http2 to determine how much connections should

be handled in the reslist by default (i.e. max_threads).

mod_proxy: follow up to r1822849 and r1822878.

Does r1822878's "static" APR_RETRIEVE_OPTIONAL_FN work if, say, mod_proxy is

builtin but mod_http2 isn't?

Not worth taking the risk here since it's not a fast path...

Note: if this is an issue, I'm afraid it applies elsewhere too.

mod_proxy: follow up to r1822849 and r1822879.

Fix my maths, thanks Stefan and Rüdiger!

needs mod_http2.h

* Add missing CHANGES entry for revisions 1822849,1822858,1822878,1822879,1822883,1828485

Submitted by: rpluem, ylavic, ylavic, ylavic, gsmith, rpluem

Reviewed by: rpluem, jim, ylavic

  1. … 9 more files in changeset.
  1. … 7 more files in changeset.
Merge r1753224 from trunk:

Unclear whether fdpass is common enough to justify a 'most' configuration,

but for the time being, assign it -something- for a build priority.

Submitted by: wrowe

Reviewed/backported by: jim

  1. … 2 more files in changeset.
Merge r1750043 from trunk:

Replace the proxy_mods_enable logic, with its hazardous 'yes' value that

aborts the build on missing dependencies, with a local override of the

module_selection as 'most', and module_default of the same shared|static

model that was requested through --enable-proxy.

[For trunk, we need to reevaluate the 'most' condition of some of the more

esoteric modules, and simply drop the module_default override; where a user

wants to enable -only- mod_proxy, plus one proxy mechanism, the legacy 2.4.x

behavior retained by this patch is nuts. For one example,

--enable-modules=few --enable-proxy-yes --enable-proxy_http

is a completely specific and legitimate syntax --- adding 10 other proxy

providers in response to this syntax is absurd.]

Submitted by: wrowe

Reviewed/backported by: jim

  1. … 2 more files in changeset.
Merge r1749659, r1749678 from trunk:

Simplify, and correct the dependency handling of mod_proxy_hcheck

Cause missing mod_watchdog to 'unset' the --enable-proxy default, rather than

disable the module. This forces the module logic to emit a warning of the

missing dependency; changes the output from

checking whether to enable mod_proxy_hcheck... no


configure: WARNING: "mod_watchdog is disabled but required for mod_proxy_hcheck"

checking whether to enable mod_proxy_hcheck... no (disabled)

Submitted by: wrowe

Reviewed/backported by: jim

  1. … 2 more files in changeset.
Merge of r1748888 from trunk:

If enable_proxy_hcheck is unset handle it like other proxy modules

  1. … 1 more file in changeset.
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


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

Check that we have names for both templates and


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


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.


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

  1. … 350 more files in changeset.
Merge r1452911, r1452949, r1452954, r1453022, r1453574, r1453875, r1453876, r1453963, r1454386, r1454414, r1454415, r1458285, r1458447 from trunk:

Rough start for simple, tunneling websocket proxy support.

Compiles at this stage and that's all I know :)

force correct scheme info

We need to ensure a conn_rec

Work around blocking issues...

And now pass the initial request to the backend...

I dislike this duplication of code from mod_proxy_http()

but maybe it's inevitable. I may create ap_proxy_create_headerb()

to create a header brigade that both modules can use.

Pull out duplicated code to proxy_util...

rename extension module... tunnel is more accurate

log nums

"final" rename :)

don't strip these, ensure that they exist.


bypass reqtimeout for websockets

Keep mod_req clear. Simply scan thru input filters and

remove it within the ws submodule. Nasty, but it keeps

mod_req untouched (for now ;) )

Reviewed/backported by: jim

  1. … 20 more files in changeset.
Merge r1234180, r1234297, r1234565:

Make APACHE_MODULE() accept an optional prerequisite module for configure.

Introduce the following configure time dependencies:

mod_proxy_* (except proxy_html) require mod_proxy

mod_dav_* require mod_dav

mod_session_* require mod_session

mod_cache_disk requires mod_cache

mod_heartbeat requires mod_watchdog

PR: 52487

  1. … 9 more files in changeset.
Pre GA removal ob components that will not be included:

Part 2: Remove mod_serf.

  1. … 16 more files in changeset.