1<?xml version="1.0" encoding="ISO-8859-1"?> 2<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> 3<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en"><head><!-- 4 XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX 5 This file is generated from xml source: DO NOT EDIT 6 XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX 7 --> 8<title>mod_proxy_fcgi - Apache HTTP Server</title> 9<link href="/style/css/manual.css" rel="stylesheet" media="all" type="text/css" title="Main stylesheet" /> 10<link href="/style/css/manual-loose-100pc.css" rel="alternate stylesheet" media="all" type="text/css" title="No Sidebar - Default font size" /> 11<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" /> 12<script src="/style/scripts/prettify.min.js" type="text/javascript"> 13</script> 14 15<link href="/images/favicon.ico" rel="shortcut icon" /></head> 16<body> 17<div id="page-header"> 18<p class="menu"><a href="/mod/">Modules</a> | <a href="/mod/directives.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> 19<p class="apache">Apache HTTP Server Version 2.4</p> 20<img alt="" src="/images/feather.gif" /></div> 21<div class="up"><a href="./"><img title="<-" alt="<-" src="/images/left.gif" /></a></div> 22<div id="path"> 23<a href="http://www.apache.org/">Apache</a> > <a href="http://httpd.apache.org/">HTTP Server</a> > <a href="http://httpd.apache.org/docs/">Documentation</a> > <a href="../">Version 2.4</a> > <a href="./">Modules</a></div> 24<div id="page-content"> 25<div id="preamble"><h1>Apache Module mod_proxy_fcgi</h1> 26<div class="toplang"> 27<p><span>Available Languages: </span><a href="/en/mod/mod_proxy_fcgi.html" title="English"> en </a> | 28<a href="/fr/mod/mod_proxy_fcgi.html" hreflang="fr" rel="alternate" title="Fran�ais"> fr </a></p> 29</div> 30<table class="module"><tr><th><a href="module-dict.html#Description">Description:</a></th><td>FastCGI support module for 31<code class="module"><a href="/mod/mod_proxy.html">mod_proxy</a></code></td></tr> 32<tr><th><a href="module-dict.html#Status">Status:</a></th><td>Extension</td></tr> 33<tr><th><a href="module-dict.html#ModuleIdentifier">Module�Identifier:</a></th><td>proxy_fcgi_module</td></tr> 34<tr><th><a href="module-dict.html#SourceFile">Source�File:</a></th><td>mod_proxy_fcgi.c</td></tr> 35<tr><th><a href="module-dict.html#Compatibility">Compatibility:</a></th><td>Available in version 2.3 and later</td></tr></table> 36<h3>Summary</h3> 37 38 <p>This module <em>requires</em> the service of <code class="module"><a href="/mod/mod_proxy.html">mod_proxy</a></code>. It provides support for the 39 <a href="http://www.fastcgi.com/">FastCGI</a> protocol.</p> 40 41 <p>Thus, in order to get the ability of handling the <code>FastCGI</code> 42 protocol, <code class="module"><a href="/mod/mod_proxy.html">mod_proxy</a></code> and 43 <code class="module"><a href="/mod/mod_proxy_fcgi.html">mod_proxy_fcgi</a></code> have to be present in the server.</p> 44 45 <p>Unlike <a href="http://httpd.apache.org/mod_fcgid/">mod_fcgid</a> 46 and <a href="http://www.fastcgi.com/">mod_fastcgi</a>, 47 <code class="module"><a href="/mod/mod_proxy_fcgi.html">mod_proxy_fcgi</a></code> has no provision for starting the 48 application process; <code class="program"><a href="/programs/fcgistarter.html">fcgistarter</a></code> is provided 49 (on some platforms) for that purpose. Alternatively, external launching 50 or process management may be available in the FastCGI application 51 framework in use.</p> 52 53 <div class="warning"><h3>Warning</h3> 54 <p>Do not enable proxying until you have <a href="mod_proxy.html#access">secured your server</a>. Open proxy 55 servers are dangerous both to your network and to the Internet at 56 large.</p> 57 </div> 58</div> 59<div id="quickview"><h3 class="directives">Directives</h3> 60<p>This module provides no 61 directives.</p> 62<h3>Topics</h3> 63<ul id="topics"> 64<li><img alt="" src="/images/down.gif" /> <a href="#examples">Examples</a></li> 65<li><img alt="" src="/images/down.gif" /> <a href="#env">Environment Variables</a></li> 66</ul><h3>See also</h3> 67<ul class="seealso"> 68<li><code class="program"><a href="/programs/fcgistarter.html">fcgistarter</a></code></li> 69<li><code class="module"><a href="/mod/mod_proxy.html">mod_proxy</a></code></li> 70</ul><ul class="seealso"><li><a href="#comments_section">Comments</a></li></ul></div> 71<div class="top"><a href="#page-header"><img alt="top" src="/images/up.gif" /></a></div> 72<div class="section"> 73<h2><a name="examples" id="examples">Examples</a></h2> 74 <p>Remember, in order to make the following examples work, you have to 75 enable <code class="module"><a href="/mod/mod_proxy.html">mod_proxy</a></code> and <code class="module"><a href="/mod/mod_proxy_fcgi.html">mod_proxy_fcgi</a></code>.</p> 76 77 <div class="example"><h3>Single application instance</h3><pre class="prettyprint lang-config">ProxyPass /myapp/ fcgi://localhost:4000/</pre> 78</div> 79 80 <p>This application should be able to handle multiple concurrent 81 connections. <code class="module"><a href="/mod/mod_proxy.html">mod_proxy</a></code> enables connection reuse by 82 default, so after a request has been completed the connection will be 83 held open by that httpd child process and won't be reused until that 84 httpd process routes another request to the application. If the 85 FastCGI application is unable to handle enough concurrent connections 86 from httpd, requests can block waiting for the application to close 87 an existing connection. One way to resolve this is to disable connection 88 reuse on the <code class="directive">ProxyPass</code> directive, as shown in 89 the following example:</p> 90 91 <div class="example"><h3>Single application instance, no connection reuse</h3><pre class="prettyprint lang-config">ProxyPass /myapp/ fcgi://localhost:4000/ disablereuse=on</pre> 92</div> 93 94 <p>The balanced gateway needs <code class="module"><a href="/mod/mod_proxy_balancer.html">mod_proxy_balancer</a></code> and 95 at least one load balancer algorithm module, such as 96 <code class="module"><a href="/mod/mod_lbmethod_byrequests.html">mod_lbmethod_byrequests</a></code>, in addition to the proxy 97 modules listed above. <code class="module"><a href="/mod/mod_lbmethod_byrequests.html">mod_lbmethod_byrequests</a></code> is the 98 default, and will be used for this example configuration.</p> 99 100 <div class="example"><h3>Balanced gateway to multiple application instances</h3><pre class="prettyprint lang-config">ProxyPass /myapp/ balancer://myappcluster/ 101<Proxy balancer://myappcluster/> 102 BalancerMember fcgi://localhost:4000 103 BalancerMember fcgi://localhost:4001 104</Proxy></pre> 105</div> 106</div><div class="top"><a href="#page-header"><img alt="top" src="/images/up.gif" /></a></div> 107<div class="section"> 108<h2><a name="env" id="env">Environment Variables</a></h2> 109 <p>In addition to the configuration directives that control the 110 behaviour of <code class="module"><a href="/mod/mod_proxy.html">mod_proxy</a></code>, there are a number of 111 <dfn>environment variables</dfn> that control the FCGI protocol 112 provider:</p> 113 <dl> 114 <dt>proxy-fcgi-pathinfo</dt> 115 <dd>By default <code class="module"><a href="/mod/mod_proxy_fcgi.html">mod_proxy_fcgi</a></code> will neither create 116 nor export the <var>PATH_INFO</var> environment variable. This allows 117 the backend FCGI server to correctly determine <var>SCRIPT_NAME</var> 118 and <var>Script-URI</var> and be compliant with RFC 3875 section 3.3. 119 If instead you need <code class="module"><a href="/mod/mod_proxy_fcgi.html">mod_proxy_fcgi</a></code> to generate 120 a "best guess" for <var>PATH_INFO</var>, set this env-var. 121 This is a workaround for a bug in some FCGI implementations.</dd> 122 </dl> 123</div> 124</div> 125<div class="bottomlang"> 126<p><span>Available Languages: </span><a href="/en/mod/mod_proxy_fcgi.html" title="English"> en </a> | 127<a href="/fr/mod/mod_proxy_fcgi.html" hreflang="fr" rel="alternate" title="Fran�ais"> fr </a></p> 128</div><div class="top"><a href="#page-header"><img src="/images/up.gif" alt="top" /></a></div><div class="section"><h2><a id="comments_section" name="comments_section">Comments</a></h2><div class="warning"><strong>Notice:</strong><br />This is not a Q&A section. Comments placed here should be pointed towards suggestions on improving the documentation or server, and may be removed again by our moderators if they are either implemented or considered invalid/off-topic. Questions on how to manage the Apache HTTP Server should be directed at either our IRC channel, #httpd, on Freenode, or sent to our <a href="http://httpd.apache.org/lists.html">mailing lists</a>.</div> 129<script type="text/javascript"><!--//--><![CDATA[//><!-- 130var comments_shortname = 'httpd'; 131var comments_identifier = 'http://httpd.apache.org/docs/2.4/mod/mod_proxy_fcgi.html'; 132(function(w, d) { 133 if (w.location.hostname.toLowerCase() == "httpd.apache.org") { 134 d.write('<div id="comments_thread"><\/div>'); 135 var s = d.createElement('script'); 136 s.type = 'text/javascript'; 137 s.async = true; 138 s.src = 'https://comments.apache.org/show_comments.lua?site=' + comments_shortname + '&page=' + comments_identifier; 139 (d.getElementsByTagName('head')[0] || d.getElementsByTagName('body')[0]).appendChild(s); 140 } 141 else { 142 d.write('<div id="comments_thread">Comments are disabled for this page at the moment.<\/div>'); 143 } 144})(window, document); 145//--><!]]></script></div><div id="footer"> 146<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> 147<p class="menu"><a href="/mod/">Modules</a> | <a href="/mod/directives.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[//><!-- 148if (typeof(prettyPrint) !== 'undefined') { 149 prettyPrint(); 150} 151//--><!]]></script> 152</body></html>