]> granicus.if.org Git - apache/blobdiff - docs/manual/mod/mod_proxy_ajp.html.en
* Remove trailing whitespace from a bunch of *.xml files
[apache] / docs / manual / mod / mod_proxy_ajp.html.en
index 6fb79e85fedecb9b8ebeda9d022afdab16fa0a01..604a39aa9cc99982affa186c27c3e8eb2092f978 100644 (file)
@@ -5,7 +5,7 @@
               This file is generated from xml source: DO NOT EDIT
         XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
       -->
-<title>mod_proxy_ajp - Apache HTTP Server</title>
+<title>mod_proxy_ajp - Apache HTTP Server Version 2.5</title>
 <link href="../style/css/manual.css" rel="stylesheet" media="all" type="text/css" title="Main stylesheet" />
 <link href="../style/css/manual-loose-100pc.css" rel="alternate stylesheet" media="all" type="text/css" title="No Sidebar - Default font size" />
 <link href="../style/css/manual-print.css" rel="stylesheet" media="print" type="text/css" /><link rel="stylesheet" type="text/css" href="../style/css/prettify.css" />
       large.</p>
     </div>
 </div>
-<div id="quickview"><h3 class="directives">Directives</h3>
-<p>This module provides no
-            directives.</p>
-<h3>Topics</h3>
+<div id="quickview"><h3>Topics</h3>
 <ul id="topics">
 <li><img alt="" src="../images/down.gif" /> <a href="#usage">Usage</a></li>
 <li><img alt="" src="../images/down.gif" /> <a href="#env">Environment Variables</a></li>
 <li><img alt="" src="../images/down.gif" /> <a href="#basppacketstruct">Basic Packet Structure</a></li>
 <li><img alt="" src="../images/down.gif" /> <a href="#rpacetstruct">Request Packet Structure</a></li>
 <li><img alt="" src="../images/down.gif" /> <a href="#resppacketstruct">Response Packet Structure</a></li>
-</ul><h3>See also</h3>
+</ul><h3 class="directives">Directives</h3>
+<p>This module provides no
+            directives.</p>
+<h3>See also</h3>
 <ul class="seealso">
 <li><code class="module"><a href="../mod/mod_proxy.html">mod_proxy</a></code></li>
 <li><a href="../env.html">Environment Variable documentation</a></li>
     (e.g. Apache Tomcat) using the AJP13 protocol. The usage is similar to
     an HTTP reverse proxy, but uses the <code>ajp://</code> prefix:</p>
 
-    <div class="example"><h3>Simple Reverse Proxy</h3><pre class="prettyprint lang-config">
-    ProxyPass /app ajp://backend.example.com:8009/app
-    </pre>
+    <div class="example"><h3>Simple Reverse Proxy</h3><pre class="prettyprint lang-config">ProxyPass "/app" "ajp://backend.example.com:8009/app"</pre>
 </div>
 
     <p>Balancers may also be used:</p>
-    <div class="example"><h3>Balancer Reverse Proxy</h3><pre class="prettyprint lang-config">
-&lt;Proxy balancer://cluster&gt;
+    <div class="example"><h3>Balancer Reverse Proxy</h3><pre class="prettyprint lang-config">&lt;Proxy balancer://cluster&gt;
     BalancerMember ajp://app1.example.com:8009 loadfactor=1
     BalancerMember ajp://app2.example.com:8009 loadfactor=2
     ProxySet lbmethod=bytraffic
 &lt;/Proxy&gt;
-ProxyPass /app balancer://cluster/app
-      </pre>
+ProxyPass "/app" "balancer://cluster/app"</pre>
 </div>
 
     <p>Note that usually no
@@ -93,16 +89,14 @@ ProxyPass /app balancer://cluster/app
     header given to the proxy, and the application server can be expected
     to generate self-referential headers relative to this host, so no
     rewriting is necessary.</p>
-    
+
     <p>The main exception is when the URL path on the proxy differs from that
     on the
     backend. In this case, a redirect header can be rewritten relative to the
     original host URL (not the backend <code>ajp://</code> URL), for
     example:</p>
-    <div class="example"><h3>Rewriting Proxied Path</h3><pre class="prettyprint lang-config">
-ProxyPass /apps/foo ajp://backend.example.com:8009/foo
-ProxyPassReverse /apps/foo http://www.example.com/foo
-    </pre>
+    <div class="example"><h3>Rewriting Proxied Path</h3><pre class="prettyprint lang-config">ProxyPass "/apps/foo" "ajp://backend.example.com:8009/foo"
+ProxyPassReverse "/apps/foo" "http://www.example.com/foo"</pre>
 </div>
     <p>However, it is usually better to deploy the application on the backend
     server at the same path as the proxy rather than to take this approach.
@@ -161,11 +155,7 @@ ProxyPassReverse /apps/foo http://www.example.com/foo
 <h2><a name="basppacketstruct" id="basppacketstruct">Basic Packet Structure</a></h2>
     <p>There is a bit of an XDR heritage to this protocol, but it differs
     in lots of ways (no 4 byte alignment, for example).</p>
-    <p>Byte order: I am not clear about the endian-ness of the individual
-    bytes.  I'm guessing the bytes are little-endian, because that's what
-    XDR specifies, and I'm guessing that sys/socket library is magically
-    making that so (on the C side).  If anyone with a better knowledge of
-    socket calls can step in, that would be great.</p>
+    <p>AJP13 uses network byte order for all data types.</p>
     <p>There are four data types in the protocol: bytes, booleans,
     integers and strings.</p>
     <dl>
@@ -341,8 +331,7 @@ ProxyPassReverse /apps/foo http://www.example.com/foo
 <h2><a name="rpacetstruct" id="rpacetstruct">Request Packet Structure</a></h2>
     <p>For messages from the server to the container of type
     <em>Forward Request</em>:</p>
-    <div class="example"><pre>
-AJP13_FORWARD_REQUEST :=
+    <div class="example"><pre>AJP13_FORWARD_REQUEST :=
     prefix_code      (byte) 0x02 = JK_AJP13_FORWARD_REQUEST
     method           (byte)
     protocol         (string)
@@ -355,25 +344,19 @@ AJP13_FORWARD_REQUEST :=
     num_headers      (integer)
     request_headers *(req_header_name req_header_value)
     attributes      *(attribut_name attribute_value)
-    request_terminator (byte) OxFF
-    </pre></div>
+    request_terminator (byte) OxFF</pre></div>
     <p>The <code>request_headers</code> have the following structure:
-    </p><div class="example"><pre>
-req_header_name :=
+    </p><div class="example"><pre>req_header_name :=
     sc_req_header_name | (string)  [see below for how this is parsed]
 
 sc_req_header_name := 0xA0xx (integer)
 
-req_header_value := (string)
-</pre></div>
+req_header_value := (string)</pre></div>
     <p>The <code>attributes</code> are optional and have the following
     structure:</p>
-    <div class="example"><pre>
-attribute_name := sc_a_name | (sc_a_req_attribute string)
-
-attribute_value := (string)
+    <div class="example"><pre>attribute_name := sc_a_name | (sc_a_req_attribute string)
 
-    </pre></div>
+attribute_value := (string)</pre></div>
     <p>Not that the all-important header is <code>content-length</code>,
     because it determines whether or not the container looks for another
     packet immediately.</p>
@@ -462,7 +445,7 @@ attribute_value := (string)
     header names.  If the first byte is not <code>0xA0</code>, it assumes that
     the two-byte integer is the length of a string, which is then read in.</p>
     <p>This works on the assumption that no header names will have length
-    greater than <code>0x9999 (==0xA000 - 1)</code>, which is perfectly
+    greater than <code>0x9FFF (==0xA000 - 1)</code>, which is perfectly
     reasonable, though somewhat arbitrary.</p>
     <div class="note"><h3>Note:</h3>
     The <code>content-length</code> header is extremely
@@ -526,8 +509,7 @@ attribute_value := (string)
 <div class="section">
 <h2><a name="resppacketstruct" id="resppacketstruct">Response Packet Structure</a></h2>
     <p>for messages which the container can send back to the server.</p>
-    <div class="example"><pre>
-AJP13_SEND_BODY_CHUNK :=
+    <div class="example"><pre>AJP13_SEND_BODY_CHUNK :=
   prefix_code   3
   chunk_length  (integer)
   chunk        *(byte)
@@ -555,8 +537,7 @@ AJP13_END_RESPONSE :=
 
 AJP13_GET_BODY_CHUNK :=
   prefix_code       6
-  requested_length  (integer)
-    </pre></div>
+  requested_length  (integer)</pre></div>
   <h3>Details:</h3>
   <h3>Send Body Chunk</h3>
     <p>The chunk is basically binary data, and is sent directly back to the
@@ -587,9 +568,9 @@ AJP13_GET_BODY_CHUNK :=
   
   <h3>End Response</h3>
     <p>Signals the end of this request-handling cycle.  If the
-    <code>reuse</code> flag is true <code>(==1)</code>, this TCP connection can
-    now be used to handle new incoming requests.  If <code>reuse</code> is false
-    (anything other than 1 in the actual C code), the connection should
+    <code>reuse</code> flag is true <code>(anything other than 0 in the actual
+    C code)</code>, this TCP connection can now be used to handle new incoming
+    requests.  If <code>reuse</code> is false (==0), the connection should
     be closed.</p>
   
   <h3>Get Body Chunk</h3>
@@ -627,7 +608,7 @@ var comments_identifier = 'http://httpd.apache.org/docs/trunk/mod/mod_proxy_ajp.
     }
 })(window, document);
 //--><!]]></script></div><div id="footer">
-<p class="apache">Copyright 2014 The Apache Software Foundation.<br />Licensed under the <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache License, Version 2.0</a>.</p>
+<p class="apache">Copyright 2015 The Apache Software Foundation.<br />Licensed under the <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache License, Version 2.0</a>.</p>
 <p class="menu"><a href="../mod/">Modules</a> | <a href="../mod/quickreference.html">Directives</a> | <a href="http://wiki.apache.org/httpd/FAQ">FAQ</a> | <a href="../glossary.html">Glossary</a> | <a href="../sitemap.html">Sitemap</a></p></div><script type="text/javascript"><!--//--><![CDATA[//><!--
 if (typeof(prettyPrint) !== 'undefined') {
     prettyPrint();