You are viewing a plain text version of this content. The canonical link for it is here.
Posted to cvs@httpd.apache.org by rj...@apache.org on 2012/12/14 14:29:32 UTC

svn commit: r1421851 - in /httpd/httpd/trunk/docs/manual/mod: mod_proxy.xml mod_proxy_balancer.xml mod_proxy_fcgi.xml mod_proxy_scgi.xml

Author: rjung
Date: Fri Dec 14 13:29:31 2012
New Revision: 1421851

URL: http://svn.apache.org/viewvc?rev=1421851&view=rev
Log:
Fix use of trailing slashes in proxy
balancer and member URLs and add a little
explanation.

Current behavior AFAIK:

- Any path of a balancer URL inside <Proxy>
  is ignored. So lets not use e.g.trailing slashes
  there. The URL should for consistency always
  look like balancer://mycluster.
- The general comment about trailing slashes on the
  left and right of ProxyPass is also right for
  balancer use.
- Trailing slahes in BalancerMember in most cases
  lead to double slashes on the origin server.
  So lets drop them there and instead get the
  ProxyPass to the balancer right.
- Path components in member URLs are only
  needed, if different path prefixes are needed
  for members in the same balancer (unlikely
  but possible). If all members work with the
  same non-empty additional prefix, put it
  into the ProxyPass at the end of the balancer
  instead.

Modified:
    httpd/httpd/trunk/docs/manual/mod/mod_proxy.xml
    httpd/httpd/trunk/docs/manual/mod/mod_proxy_balancer.xml
    httpd/httpd/trunk/docs/manual/mod/mod_proxy_fcgi.xml
    httpd/httpd/trunk/docs/manual/mod/mod_proxy_scgi.xml

Modified: httpd/httpd/trunk/docs/manual/mod/mod_proxy.xml
URL: http://svn.apache.org/viewvc/httpd/httpd/trunk/docs/manual/mod/mod_proxy.xml?rev=1421851&r1=1421850&r2=1421851&view=diff
==============================================================================
--- httpd/httpd/trunk/docs/manual/mod/mod_proxy.xml (original)
+++ httpd/httpd/trunk/docs/manual/mod/mod_proxy.xml Fri Dec 14 13:29:31 2012
@@ -684,6 +684,11 @@ expressions</description>
         <p>The balancerurl is only needed when not in <code>&lt;Proxy <var>balancer://</var>...&gt;</code>
             container directive. It corresponds to the url of a balancer defined in
             <directive module="mod_proxy">ProxyPass</directive> directive.</p>
+        <p>The path component of the balancer URL in any
+            <code>&lt;Proxy <var>balancer://</var>...&gt;</code> container directive
+            is ignored.</p>
+        <p>Trailing slashes should typically be removed from the URL of a
+            <code>BalancerMember</code>.</p>
     </usage>
 </directivesynopsis>
 
@@ -707,8 +712,8 @@ expressions</description>
     <example>
         <highlight language="config">
 &lt;Proxy balancer://hotcluster&gt;
-    BalancerMember http://www2.example.com:8080/ loadfactor=1
-    BalancerMember http://www3.example.com:8080/ loadfactor=2
+    BalancerMember http://www2.example.com:8080 loadfactor=1
+    BalancerMember http://www3.example.com:8080 loadfactor=2
     ProxySet lbmethod=bytraffic
 &lt;/Proxy&gt;
       </highlight>
@@ -1032,7 +1037,7 @@ ProxyPass /mirror/foo http://backend.exa
     </table>
 
     <p>If the Proxy directive scheme starts with the
-    <code>balancer://</code> (eg: <code>balancer://cluster/</code>,
+    <code>balancer://</code> (eg: <code>balancer://cluster</code>,
     any path information is ignored)  then a virtual worker that does not really
     communicate with the backend server will be created. Instead it is responsible
     for the management of several "real" workers. In that case the special set of
@@ -1129,22 +1134,22 @@ ProxyPass /mirror/foo http://backend.exa
 ProxyPass /special-area http://special.example.com smax=5 max=10
 ProxyPass / balancer://mycluster/ stickysession=JSESSIONID|jsessionid nofailover=On
 &lt;Proxy balancer://mycluster&gt;
-    BalancerMember ajp://1.2.3.4:8009/
-    BalancerMember ajp://1.2.3.5:8009/ loadfactor=20
+    BalancerMember ajp://1.2.3.4:8009
+    BalancerMember ajp://1.2.3.5:8009 loadfactor=20
     # Less powerful server, don't send as many requests there,
-    BalancerMember ajp://1.2.3.6:8009/ loadfactor=5
+    BalancerMember ajp://1.2.3.6:8009 loadfactor=5
 &lt;/Proxy&gt;
     </highlight>
 
     <p>Setting up a hot-standby, that will only be used if no other
      members are available</p>
     <highlight language="config">
-ProxyPass / balancer://hotcluster/ 
+ProxyPass / balancer://hotcluster/
 &lt;Proxy balancer://hotcluster&gt;
-    BalancerMember ajp://1.2.3.4:8009/ loadfactor=1
-    BalancerMember ajp://1.2.3.5:8009/ loadfactor=2
+    BalancerMember ajp://1.2.3.4:8009 loadfactor=1
+    BalancerMember ajp://1.2.3.5:8009 loadfactor=2
     # The server below is on hot standby
-    BalancerMember ajp://1.2.3.6:8009/ status=+H
+    BalancerMember ajp://1.2.3.6:8009 status=+H
     ProxySet lbmethod=bytraffic
 &lt;/Proxy&gt;
     </highlight>

Modified: httpd/httpd/trunk/docs/manual/mod/mod_proxy_balancer.xml
URL: http://svn.apache.org/viewvc/httpd/httpd/trunk/docs/manual/mod/mod_proxy_balancer.xml?rev=1421851&r1=1421850&r2=1421851&view=diff
==============================================================================
--- httpd/httpd/trunk/docs/manual/mod/mod_proxy_balancer.xml (original)
+++ httpd/httpd/trunk/docs/manual/mod/mod_proxy_balancer.xml Fri Dec 14 13:29:31 2012
@@ -91,12 +91,12 @@
     </p>
 
     <highlight language="config">
-&lt;Proxy balancer://mycluster/&gt;
-    BalancerMember http://192.168.1.50:80/
-    BalancerMember http://192.168.1.51:80/
+&lt;Proxy balancer://mycluster&gt;
+    BalancerMember http://192.168.1.50:80
+    BalancerMember http://192.168.1.51:80
 &lt;/Proxy&gt;
-ProxyPass /test balancer://mycluster/
-ProxyPassReverse /test balancer://mycluster/
+ProxyPass /test balancer://mycluster
+ProxyPassReverse /test balancer://mycluster
     </highlight>
 
     <p>Another example of how to provide load balancing with stickyness
@@ -106,13 +106,13 @@ ProxyPassReverse /test balancer://myclus
 
     <highlight language="config">
 Header add Set-Cookie "ROUTEID=.%{BALANCER_WORKER_ROUTE}e; path=/" env=BALANCER_ROUTE_CHANGED
-&lt;Proxy balancer://mycluster/&gt;
-    BalancerMember http://192.168.1.50:80/ route=1
-    BalancerMember http://192.168.1.51:80/ route=2
+&lt;Proxy balancer://mycluster&gt;
+    BalancerMember http://192.168.1.50:80 route=1
+    BalancerMember http://192.168.1.51:80 route=2
     ProxySet stickysession=ROUTEID
 &lt;/Proxy&gt;
-ProxyPass /test balancer://mycluster/
-ProxyPassReverse /test balancer://mycluster/
+ProxyPass /test balancer://mycluster
+ProxyPassReverse /test balancer://mycluster
     </highlight>
 </section>
 
@@ -139,7 +139,7 @@ ProxyPassReverse /test balancer://myclus
     <dt><var><a name="balancer_name" id="balancer_name">BALANCER_NAME</a></var></dt>
     <dd>
     <p>This is assigned the name of the balancer used for the current
-    request. The value is something like <code>balancer://foo/</code>.</p>
+    request. The value is something like <code>balancer://foo</code>.</p>
     </dd>
 
     <!-- ============= BALANCER_WORKER_NAME ================== -->
@@ -248,10 +248,10 @@ ProxyPassReverse /test balancer://myclus
     configuring the name of the cookie and the name of the URL parameter
     separated by a vertical bar (<code>|</code>) as in the following example:</p>
     <highlight language="config">
-ProxyPass /test balancer://mycluster/ stickysession=JSESSIONID|jsessionid scolonpathdelim=On
+ProxyPass /test balancer://mycluster stickysession=JSESSIONID|jsessionid scolonpathdelim=On
 &lt;Proxy balancer://mycluster&gt;
-    BalancerMember http://192.168.1.50:80/ route=node1
-    BalancerMember http://192.168.1.51:80/ route=node2
+    BalancerMember http://192.168.1.50:80 route=node1
+    BalancerMember http://192.168.1.51:80 route=node2
 &lt;/Proxy&gt;
     </highlight>
     <p>If the cookie and the request parameter both provide routing information

Modified: httpd/httpd/trunk/docs/manual/mod/mod_proxy_fcgi.xml
URL: http://svn.apache.org/viewvc/httpd/httpd/trunk/docs/manual/mod/mod_proxy_fcgi.xml?rev=1421851&r1=1421850&r2=1421851&view=diff
==============================================================================
--- httpd/httpd/trunk/docs/manual/mod/mod_proxy_fcgi.xml (original)
+++ httpd/httpd/trunk/docs/manual/mod/mod_proxy_fcgi.xml Fri Dec 14 13:29:31 2012
@@ -93,8 +93,8 @@
     <highlight language="config">
 ProxyPass /myapp/ balancer://myappcluster/
 &lt;Proxy balancer://myappcluster/&gt;
-    BalancerMember fcgi://localhost:4000/
-    BalancerMember fcgi://localhost:4001/
+    BalancerMember fcgi://localhost:4000
+    BalancerMember fcgi://localhost:4001
 &lt;/Proxy&gt;
     </highlight>
     </example>

Modified: httpd/httpd/trunk/docs/manual/mod/mod_proxy_scgi.xml
URL: http://svn.apache.org/viewvc/httpd/httpd/trunk/docs/manual/mod/mod_proxy_scgi.xml?rev=1421851&r1=1421850&r2=1421851&view=diff
==============================================================================
--- httpd/httpd/trunk/docs/manual/mod/mod_proxy_scgi.xml (original)
+++ httpd/httpd/trunk/docs/manual/mod/mod_proxy_scgi.xml Fri Dec 14 13:29:31 2012
@@ -68,9 +68,9 @@
     <example><title>Balanced gateway</title>
     <highlight language="config">
 ProxyPass /scgi-bin/ balancer://somecluster/
-&lt;Proxy balancer://somecluster/&gt;
-    BalancerMember scgi://localhost:4000/
-    BalancerMember scgi://localhost:4001/
+&lt;Proxy balancer://somecluster&gt;
+    BalancerMember scgi://localhost:4000
+    BalancerMember scgi://localhost:4001
 &lt;/Proxy&gt;
     </highlight>
     </example>