From: Luca Toscano Date: Sat, 10 Feb 2018 12:21:53 +0000 (+0000) Subject: mod_proxy_fcgi.xml: add a note about connection reuse X-Git-Tag: 2.4.30~93 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=42e494ea50e8431dd360ed539e8fb961840c92af;p=apache mod_proxy_fcgi.xml: add a note about connection reuse git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/branches/2.4.x@1823753 13f79535-47bb-0310-9956-ffa450edef68 --- diff --git a/docs/manual/mod/mod_proxy_fcgi.xml b/docs/manual/mod/mod_proxy_fcgi.xml index fa1e5cc8f1..ada5e8d420 100644 --- a/docs/manual/mod/mod_proxy_fcgi.xml +++ b/docs/manual/mod/mod_proxy_fcgi.xml @@ -82,6 +82,30 @@ ProxyPass "/myapp/" "fcgi://localhost:4000/" enablereuse=on + Enable connection reuse to a FCGI backend like PHP-FPM +

Please keep in mind that PHP-FPM (at the time of writing, February 2018) + uses a prefork model, namely each of its worker processes can handle one + connection at the time.
+ By default mod_proxy (configured with enablereuse=on) + allows a connection pool of + ThreadsPerChild connections to the + backend for each httpd process, so the following use cases should be taken + into account:

+ +

The maximum number of PHP-FPM worker processes needs to be configured wisely, + since there is the chance that they will all end up "busy" handling idle + persistent connections, without any room for new ones to be established, + and the end user experience will be a pile of HTTP request timeouts.

+
+

The following example passes the request URI as a filesystem path for the PHP-FPM daemon to run. The request URL is implicitly added to the 2nd parameter. The hostname and port following fcgi:// are where