]> granicus.if.org Git - apache/commitdiff
mod_proxy.xml: follow up r1834203
authorLuca Toscano <elukey@apache.org>
Sun, 24 Jun 2018 10:32:15 +0000 (10:32 +0000)
committerLuca Toscano <elukey@apache.org>
Sun, 24 Jun 2018 10:32:15 +0000 (10:32 +0000)
Add more precise info and warn notes about
variable interpolation.

PR: 62477

git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/branches/2.4.x@1834244 13f79535-47bb-0310-9956-ffa450edef68

docs/manual/mod/mod_proxy.xml

index d0a4e1432d18bcbf0e357f264a19c24e2a0df275..67e752ba2b00f540c163ebcd8fb63980e62cd90c 100644 (file)
@@ -1399,13 +1399,15 @@ ProxyPass "/" "balancer://hotcluster/"
     httpd 2.4.1 and later) prevents this.</p>
 
     <p>The optional <var>interpolate</var> keyword, in combination with
-    <directive>ProxyPassInterpolateEnv</directive>, causes the ProxyPass
+    <directive module="mod_proxy">ProxyPassInterpolateEnv</directive>, causes the ProxyPass
     to interpolate environment variables, using the syntax
     <var>${VARNAME}</var>.  Note that many of the standard CGI-derived
     environment variables will not exist when this interpolation happens,
     so you may still have to resort to <module>mod_rewrite</module>
-    for complex rules.  Also note that interpolation is not supported
-    within the scheme/hostname/port portion of a URL. Dynamic determination of
+    for complex rules. Also note that interpolation is supported
+    within the scheme/hostname/port portion of a URL only for variables that
+    are available when the directive is parsed 
+    (like <directive module="core">Define</directive>). Dynamic determination of
     those fields can be accomplished with <module>mod_rewrite</module>.
     The following example describes how to use <module>mod_rewrite</module>
     to dynamically set the scheme to http or https:</p>
@@ -2004,12 +2006,17 @@ header for proxied requests</description>
     and causes them to substitute the value of an environment
     variable <code>varname</code> for the string <code>${varname}</code>
     in configuration directives if the <var>interpolate</var> option is set.</p>
-    <p>The scheme/hostname/port portion of <directive>ProxyPass</directive> cannot
-    contain variables, please consider using <module>mod_rewrite</module> instead.</p>
-    <p>Keep this turned off (for server performance) unless you need it!
+    <p>The scheme/hostname/port portion of <directive>ProxyPass</directive> may
+    contain variables, but only the ones available when the directive is parsed
+    (for example, using <directive module="core">Define</directive>).
+    For all the other use cases, please consider using
+    <module>mod_rewrite</module> instead.</p>
+    <note type="warning"><title>Performance warning</title>
+    <p>Keep this turned off unless you need it!
     Adding variables to <directive>ProxyPass</directive> for example may lead to
-    using the default mod_proxy's workers configured (that don't allow any fine
+    the use of the default mod_proxy's workers configured (that don't allow any fine
     tuning like connections reuse, etc..).</p>
+    </note>
 </usage>
 </directivesynopsis>