From: Jim Jagielski Date: Mon, 10 Oct 2016 12:32:17 +0000 (+0000) Subject: Merge r1762517 from trunk: X-Git-Tag: 2.4.24~204 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=803ee51f6e69558afba2757bd1c07a81c7342f0e;p=thirdparty%2Fapache%2Fhttpd.git Merge r1762517 from trunk: mod_proxy: log diagnostics during ProxyPass[Match] To help out users when debugging ProxyPass and ProxyPassMatch, log all match attempts (at trace2), as well as matches that are either successful or explicitly disabled (at trace1). Submitted by: jchampion Reviewed/backported by: jim git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/branches/2.4.x@1764077 13f79535-47bb-0310-9956-ffa450edef68 --- diff --git a/STATUS b/STATUS index ac3182e8b35..9b3ef7cbae0 100644 --- a/STATUS +++ b/STATUS @@ -117,12 +117,6 @@ RELEASE SHOWSTOPPERS: PATCHES ACCEPTED TO BACKPORT FROM TRUNK: [ start all new proposals below, under PATCHES PROPOSED. ] - *) mod_proxy: add log trace points to help users diagnose problems with - ProxyPass[Match]. - trunk patch: http://svn.apache.org/r1762517 - 2.4.x patch: trunk works (modulo aplog numbers) - +1: jchampion, jim, ylavic - *) event: Don't assume sizeof. trunk patch: http://svn.apache.org/r1732228 2.4.x patch: trunk works diff --git a/modules/proxy/mod_proxy.c b/modules/proxy/mod_proxy.c index 1ab17da1c95..d47127f37cb 100644 --- a/modules/proxy/mod_proxy.c +++ b/modules/proxy/mod_proxy.c @@ -649,9 +649,18 @@ PROXY_DECLARE(int) ap_proxy_trans_match(request_rec *r, struct proxy_alias *ent, fake = ent->fake; real = ent->real; } + + ap_log_rerror(APLOG_MARK, APLOG_TRACE2, 0, r, APLOGNO(03461) + "attempting to match URI path '%s' against %s '%s' for " + "proxying", r->uri, (ent->regex ? "pattern" : "prefix"), + fake); + if (ent->regex) { if (!ap_regexec(ent->regex, r->uri, AP_MAX_REG_MATCH, regm, 0)) { if ((real[0] == '!') && (real[1] == '\0')) { + ap_log_rerror(APLOG_MARK, APLOG_TRACE1, 0, r, APLOGNO(03462) + "proxying is explicitly disabled for URI path " + "'%s'; declining", r->uri); return DECLINED; } /* test that we haven't reduced the URI */ @@ -695,6 +704,9 @@ PROXY_DECLARE(int) ap_proxy_trans_match(request_rec *r, struct proxy_alias *ent, if (len != 0) { if ((real[0] == '!') && (real[1] == '\0')) { + ap_log_rerror(APLOG_MARK, APLOG_TRACE1, 0, r, APLOGNO(03463) + "proxying is explicitly disabled for URI path " + "'%s'; declining", r->uri); return DECLINED; } if (nocanon && len != alias_match(r->unparsed_uri, ent->fake)) { @@ -723,6 +735,11 @@ PROXY_DECLARE(int) ap_proxy_trans_match(request_rec *r, struct proxy_alias *ent, if (ent->flags & PROXYPASS_NOQUERY) { apr_table_setn(r->notes, "proxy-noquery", "1"); } + + ap_log_rerror(APLOG_MARK, APLOG_TRACE1, 0, r, APLOGNO(03464) + "URI path '%s' matches proxy handler '%s'", r->uri, + found); + return OK; }