Summary

This module requires the service of mod_proxy. It provides support for the
FastCGI protocol.

Thus, in order to get the ability of handling the FastCGI
protocol, mod_proxy and
mod_proxy_fcgi have to be present in the server.

Unlike mod_fcgid
and mod_fastcgi,
mod_proxy_fcgi has no provision for starting the
application process; fcgistarter is provided
(on some platforms) for that purpose. Alternatively, external launching
or process management may be available in the FastCGI application
framework in use.

Warning

Do not enable proxying until you have secured your server. Open proxy
servers are dangerous both to your network and to the Internet at
large.

Topics

See also

Single application instance

ProxyPass /myapp/ fcgi://localhost:4000/

This application should be able to handle multiple concurrent
connections. mod_proxy enables connection reuse by
default, so after a request has been completed the connection will be
held open by that httpd child process and won't be reused until that
httpd process routes another request to the application. If the
FastCGI application is unable to handle enough concurrent connections
from httpd, requests can block waiting for the application to close
an existing connection. One way to resolve this is to disable connection
reuse on the ProxyPass directive, as shown in
the following example:

Balanced gateway to multiple application instances

In addition to the configuration directives that control the
behaviour of mod_proxy, there are a number of
environment variables that control the FCGI protocol
provider:

proxy-fcgi-pathinfo

By default mod_proxy_fcgi will neither create
nor export the PATH_INFO environment variable. This allows
the backend FCGI server to correctly determine SCRIPT_NAME
and Script-URI and be compliant with RFC 3875 section 3.3.
If instead you need mod_proxy_fcgi to generate
a "best guess" for PATH_INFO, set this env-var.
This is a workaround for a bug in some FCGI implementations.

Notice: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 mailing lists.