https://bz.apache.org/bugzilla/show_bug.cgi?id=69233

--- Comment #5 from David <[email protected]> ---
Hi,

 I've looked into this further and I can see that the problem  seems to be that
Apache expects a line with a 'perfect match' with the target in the ProxyPass*
directives ?

Let me elaborate. If I add this config:

<VirtualHost *:*>
    ServerName http://localhost:1080

        CustomLog "|/usr/sbin/rotatelogs -l -f
/var/log/httpd/localaccess.%Y%m%d0000 86400" combined env=!forwarded
        CustomLog "|/usr/sbin/rotatelogs -l -f
/var/log/httpd/localaccess.%Y%m%d0000 86400" proxy env=forwarded
        ErrorLog "|/usr/sbin/rotatelogs -l -f
/var/log/httpd/localerrors.%Y%m%d0000 86400"

    ProxyPassMatch "^/([^/]+)/?(.+)?$"  https://$1-myhostname.com/$2
responsefieldsize=20 keepalive=On disablereuse=On

    ProxyPass "/application/test/" "https://application-myhostname.com/";
responsefieldsize=20  keepalive=On disablereuse=On


</VirtualHost>

And I try to curl http://localhost:8180/application/healthcheck  , then I
correctly get an error saying my responsefieldsize is 20  (this is matching the
ProxyPassMatch directive and not ProxyPass as I don't have /application/test/
in the path - I can also see a match with the proxy handler i in the tracelogs
) . However, the moment I comment the ProxyPass directive or change this
"ProxyPass" directive to not match https://application-myhostname.com/  I don't
get an error complaining about the  responsefieldsize.

An example, with the config above, when I call both /application/assets and
/application/healthcheck, I get an error about the responsefieldsize. However,
if I change the ProxyPass directive to this:

ProxyPass "/application/test/" "https://application-myhostname.com/healthcheck";
responsefieldsize=20  keepalive=On disablereuse=On


I get the error when calling /application/healthcheck (responsefieldsize is
correctly read from ProxyPass directive) , but I don't get an error
(responseFieldSize is the default instead of 20) when I call
/application/assets .  If I change the target url to  
https://application-myhostname.com/assets , it is the opposite: calls to
/application/healthcheck use the default responsefieldsize but calls to
/application/assets work as desired.


I've also tried creating a ProxyPassMatch directive where the target hostname
is "https://application-myhostname.com/$2";  (with no ProxyPass at all, just
this ProxyPassMatch) , and in that case responsefieldsize is also correctly
read from the ProxyPassMatch  rule.


In our case, we cannot preconfigure all the target hostnames (which are
unknown) but rather need to write the hostname based on the request path, using
a ProxyPassMatch directive. How can we configur ethe responsefieldsize in this
case?

-- 
You are receiving this mail because:
You are the assignee for the bug.
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to