|  | <?xml version="1.0"?> | 
|  | <!DOCTYPE modulesynopsis SYSTEM "../style/modulesynopsis.dtd"> | 
|  | <?xml-stylesheet type="text/xsl" href="../style/manual.en.xsl"?> | 
|  | <!-- $LastChangedRevision$ --> | 
|  |  | 
|  | <!-- | 
|  | Licensed to the Apache Software Foundation (ASF) under one or more | 
|  | contributor license agreements.  See the NOTICE file distributed with | 
|  | this work for additional information regarding copyright ownership. | 
|  | The ASF licenses this file to You under the Apache License, Version 2.0 | 
|  | (the "License"); you may not use this file except in compliance with | 
|  | the License.  You may obtain a copy of the License at | 
|  |  | 
|  | http://www.apache.org/licenses/LICENSE-2.0 | 
|  |  | 
|  | Unless required by applicable law or agreed to in writing, software | 
|  | distributed under the License is distributed on an "AS IS" BASIS, | 
|  | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | 
|  | See the License for the specific language governing permissions and | 
|  | limitations under the License. | 
|  | --> | 
|  |  | 
|  | <modulesynopsis metafile="mod_proxy_scgi.xml.meta"> | 
|  |  | 
|  | <name>mod_proxy_scgi</name> | 
|  | <description>SCGI gateway module for <module>mod_proxy</module></description> | 
|  | <status>Extension</status> | 
|  | <sourcefile>mod_proxy_scgi.c</sourcefile> | 
|  | <identifier>proxy_scgi_module</identifier> | 
|  | <compatibility>Available in version 2.2.14 and later</compatibility> | 
|  |  | 
|  | <summary> | 
|  | <p>This module <em>requires</em> the service of <module | 
|  | >mod_proxy</module>. It provides support for the | 
|  | <a href="http://python.ca/scgi/protocol.txt">SCGI protocol, version | 
|  | 1</a>.</p> | 
|  |  | 
|  | <p>Thus, in order to get the ability of handling the SCGI protocol, | 
|  | <module>mod_proxy</module> and <module>mod_proxy_scgi</module> have to | 
|  | be present in the server.</p> | 
|  |  | 
|  | <note type="warning"><title>Warning</title> | 
|  | <p>Do not enable proxying until you have <a | 
|  | href="mod_proxy.html#access">secured your server</a>. Open proxy | 
|  | servers are dangerous both to your network and to the Internet at | 
|  | large.</p> | 
|  | </note> | 
|  | </summary> | 
|  |  | 
|  | <seealso><module>mod_proxy</module></seealso> | 
|  | <seealso><module>mod_proxy_balancer</module></seealso> | 
|  |  | 
|  | <section id="examples"><title>Examples</title> | 
|  | <p>Remember, in order to make the following examples work, you have to | 
|  | enable <module>mod_proxy</module> and <module>mod_proxy_scgi</module>.</p> | 
|  |  | 
|  | <example><title>Simple gateway</title> | 
|  | ProxyPass /scgi-bin/ scgi://localhost:4000/ | 
|  | </example> | 
|  |  | 
|  | <p>The balanced gateway needs <module>mod_proxy_balancer</module> in | 
|  | addition to the already mentioned proxy modules.</p> | 
|  |  | 
|  | <example><title>Balanced gateway</title> | 
|  | ProxyPass /scgi-bin/ balancer://somecluster/<br /> | 
|  | <Proxy balancer://somecluster/><br /> | 
|  | <indent> | 
|  | BalancerMember scgi://localhost:4000/<br /> | 
|  | BalancerMember scgi://localhost:4001/<br /> | 
|  | </indent> | 
|  | </Proxy> | 
|  | </example> | 
|  | </section> | 
|  |  | 
|  | <directivesynopsis> | 
|  | <name>ProxySCGISendfile</name> | 
|  | <description>Enable evaluation of <var>X-Sendfile</var> pseudo response | 
|  | header</description> | 
|  | <syntax>ProxySCGISendfile On|Off|<var>Headername</var></syntax> | 
|  | <default>ProxySCGISendfile Off</default> | 
|  | <contextlist><context>server config</context><context>virtual host</context> | 
|  | <context>directory</context></contextlist> | 
|  |  | 
|  | <usage> | 
|  | <p>The <directive>ProxySCGISendfile</directive> directive enables the | 
|  | SCGI backend to let files serve directly by the gateway. This is useful | 
|  | performance purposes -- the httpd can use <code>sendfile</code> or other | 
|  | optimizations, which are not possible if the file comes over the backend | 
|  | socket.</p> | 
|  | <p>The <directive>ProxySCGISendfile</directive> argument determines the | 
|  | gateway behaviour:</p> | 
|  | <dl> | 
|  | <dt><code>Off</code></dt> | 
|  | <dd>No special handling takes place.</dd> | 
|  |  | 
|  | <dt><code>On</code></dt> | 
|  | <dd>The gateway looks for a backend response header called | 
|  | <code>X-Sendfile</code> and interprets the value as filename to serve. The | 
|  | header is removed from the final response headers. This is equivalent to | 
|  | <code>ProxySCGISendfile X-Sendfile</code>.</dd> | 
|  |  | 
|  | <dt>anything else</dt> | 
|  | <dd>Similar to <code>On</code>, but instead of the hardcoded header name | 
|  | the argument is applied as header name.</dd> | 
|  | </dl> | 
|  |  | 
|  | <example><title>Example</title> | 
|  | # Use the default header (X-Sendfile)<br /> | 
|  | ProxySCGISendfile On<br /> | 
|  | <br /> | 
|  | # Use a different header<br /> | 
|  | ProxySCGISendfile X-Send-Static | 
|  | </example> | 
|  | </usage> | 
|  | </directivesynopsis> | 
|  |  | 
|  | <directivesynopsis> | 
|  | <name>ProxySCGIInternalRedirect</name> | 
|  | <description>Enable or disable internal redirect responses from the | 
|  | backend</description> | 
|  | <syntax>ProxySCGIInternalRedirect On|Off</syntax> | 
|  | <default>ProxySCGIInternalRedirect On</default> | 
|  | <contextlist><context>server config</context><context>virtual host</context> | 
|  | <context>directory</context></contextlist> | 
|  |  | 
|  | <usage> | 
|  | <p>The <directive>ProxySCGIInternalRedirect</directive> enables the backend | 
|  | to internally redirect the gateway to a different URL. This feature | 
|  | origins in <module>mod_cgi</module>, which internally redirects the | 
|  | response, if the response status is <code>OK</code> (<code>200</code>) and | 
|  | the response contains a <code>Location</code> header and its value starts | 
|  | with a slash (<code>/</code>). This value is interpreted as a new local | 
|  | URL the apache internally redirects to.</p> | 
|  |  | 
|  | <p><module>mod_proxy_scgi</module> does the same as | 
|  | <module>mod_cgi</module> in this regard, except that you can turn off the | 
|  | feature.</p> | 
|  |  | 
|  | <example><title>Example</title> | 
|  | ProxySCGIInternalRedirect Off | 
|  | </example> | 
|  | </usage> | 
|  | </directivesynopsis> | 
|  |  | 
|  | </modulesynopsis> |