mod_proxy_scgi
SCGI gateway module for mod_proxy
Extension
mod_proxy_scgi.c
proxy_scgi_module
Available in version 2.2.14 and later

This module requires the service of mod_proxy. It provides support for the SCGI protocol, version 1.

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

# 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.

mod_proxy
mod_proxy_balancer

# Examples

Remember, in order to make the following examples work, you have to enable mod_proxy and mod_proxy_scgi.

## Simple gateway

ProxyPass /scgi-bin/ scgi://localhost:4000/

The balanced gateway needs mod_proxy_balancer in addition to the already mentioned proxy modules.

## Balanced gateway

ProxyPass /scgi-bin/ balancer://somecluster/
<Proxy balancer://somecluster/>
BalancerMember scgi://localhost:4000/
BalancerMember scgi://localhost:4001/
</Proxy>
ProxySCGISendfile
Enable evaluation of X-Sendfile pseudo response header
ProxySCGISendfile On|Off|Headername
ProxySCGISendfile Off
server config
virtual host
directory

The ProxySCGISendfile directive enables the SCGI backend to let files serve directly by the gateway. This is useful performance purposes -- the httpd can use `sendfile` or other optimizations, which are not possible if the file comes over the backend socket.

The ProxySCGISendfile argument determines the gateway behaviour:

`Off`
  No special handling takes place.
`On`
  The gateway looks for a backend response header called `X-Sendfile` and interprets the value as filename to serve. The header is removed from the final response headers. This is equivalent to `ProxySCGISendfile X-Sendfile`.
anything else
  Similar to `On`, but instead of the hardcoded header name the argument is applied as header name.

# Example

# Use the default header (X-Sendfile)
ProxySCGISendfile On
# Use a different header
ProxySCGISendfile X-Send-Static
ProxySCGIInternalRedirect
Enable or disable internal redirect responses from the backend
ProxySCGIInternalRedirect On|Off
ProxySCGIInternalRedirect On
server config
virtual host
directory

The ProxySCGIInternalRedirect enables the backend to internally redirect the gateway to a different URL. This feature origins in mod_cgi, which internally redirects the response, if the response status is `OK` (`200`) and the response contains a `Location` header and its value starts with a slash (`/`). This value is interpreted as a new local URL the apache internally redirects to.

mod_proxy_scgi does the same as mod_cgi in this regard, except that you can turn off the feature.

# Example

ProxySCGIInternalRedirect Off