Serveur Apache HTTP Version 2.4
Description: | Module fournissant le support de FastCGI �
mod_proxy |
---|---|
Statut: | Extension |
Identificateur�de�Module: | proxy_fcgi_module |
Fichier�Source: | mod_proxy_fcgi.c |
Compatibilit�: | Disponible depuis la version 2.3 d'Apache |
Pour fonctionner, ce module n�cessite le chargement de
mod_proxy
. Il fournit le support du protocole FastCGI.
Ainsi, pour pouvoir traiter le protocole FastCGI
,
mod_proxy
et mod_proxy_fcgi
doivent �tre charg�s dans le serveur.
A la diff�rence de mod_fcgid et mod_fastcgi,
mod_proxy_fcgi
n'est pas en mesure de d�marrer le
processus de l'application ; fcgistarter
est
fourni � cet effet sur certaines plateformes. Le framework
applicatif FastCGI utilis� peut aussi fournir la gestion des
processus ou des lancements de programmes externes.
N'activez pas la fonctionnalit� de mandataire avant d'avoir s�curis� votre serveur. Les serveurs mandataires ouverts sont dangereux non seulement pour votre r�seau, mais aussi pour l'Internet au sens large.
Ce module ne fournit aucune directive.
Pour que ces exemples fonctionnent, vous ne devez pas oublier
d'activer mod_proxy
et
mod_proxy_fcgi
.
ProxyPass "/mon_appli/" "fcgi://localhost:4000/"
mod_proxy_fcgi
interdisant par d�faut la
r�utilisation des connexions, lorsqu'une requ�te a �t� trait�e, la
connexion ne sera pas maintenue ouverte par le processus enfant
httpd, et ne sera donc pas r�utilis�e. Cependant, si l'application
FastCGI supporte les connexions httpd simultan�es, vous pouvez opter
pour la r�utilisation des connexions comme dans l'exemple suivant :
ProxyPass "/myapp/" "fcgi://localhost:4000/" enablereuse=on
Dans l'exemple suivant, l'URI de la requ�te est transmis en tant que chemin du syst�me de fichiers pour l'ex�cution du d�mon PHP-FPM. L'URL de la requ�te est implicitement ajout�e au second param�tre. PHP-FPM est � l'�coute de l'h�te et du port qui suivent fcgi://. La conservation des connexions est activ�e.
ProxyPassMatch "^/myapp/.*\.php(/.*)?$" "fcgi://localhost:9000/var/www/" enablereuse=on
Dans l'exemple suivant, l'URI de la requ�te est transmis en tant que chemin du syst�me de fichiers pour l'ex�cution du d�mon PHP-FPM. Dans ce cas cependant, PHP-FPM est � l'�coute d'un socket de domaine unix (UDS). Cette fonctionnalit� est disponible � partir de la version 2.4.9. Avec cette syntaxe, si un nom d'h�te et un port sont ajout�s apr�s fcgi://, ils seront ignor�s.
# A ce jour, UDS ne supporte pas la r�utilisation des connexions ProxyPassMatch "^/(.*\.php(/.*)?)$" "unix:/var/run/php5-fpm.sock|fcgi://localhost/var/www/"
La passerelle � r�partition de charge n�cessite le chargement du
module mod_proxy_balancer
et d'au moins un module
fournissant un algorithme de r�partition de charge, comme
mod_lbmethod_byrequests
en plus des modules
d�j� cit�s. mod_lbmethod_byrequests
est le module
par d�faut et sera utilis� dans cet exemple de configuration.
ProxyPass "/myapp/" "balancer://myappcluster/" <Proxy "balancer://myappcluster/"> BalancerMember "fcgi://localhost:4000" BalancerMember "fcgi://localhost:4001" </Proxy>
Vous pouvez aussi forcer le traitement d'une requ�te en tant que requ�te de mandataire inverse en cr�ant un court-circuiteur de gestionnaire appropri�. Dans l'exemple ci-dessous, toutes les requ�tes pour des scripts PHP seront transmises au serveur FastCGI sp�cifi� par mandat inverse. Cette fonctionnalit� est disponible � partir de la version 2.4.10 du serveur HTTP Apache. Pour des raisons de performances, il est recommand� de d�finir un worker (configuration d'un mandataire) repr�sentant le m�me serveur fcgi:// d'arri�re-plan. Avec cette configuration, il est possible d'effectuer une correspondance directe entre l'URI et le chemin du fichier sur le serveur, et le chemin local du fichier sera alors transmis au serveur d'arri�re-plan. Lorsque FastCGI est configur� ainsi, le serveur est en mesure de calculer le PATH_INFO le plus appropri�.
<FilesMatch "\.php$"> # Note : la seule partie variable est /path/to/app.sock SetHandler "proxy:unix:/path/to/app.sock|fcgi://localhost/" </FilesMatch> # D�finition d'une configuration de mandataire qui convient. # La partie qui est mise en correspondance avec la valeur de # SetHandler est la partie qui suit le "pipe". Si vous devez faire # une distinction, "localhost" peut �tre chang� en un nom de serveur # unique. <Proxy "fcgi://localhost/" enablereuse=on max=10> </Proxy> <FilesMatch ...> SetHandler "proxy:fcgi://localhost:9000" </FilesMatch> <FilesMatch ...> SetHandler "proxy:balancer://myappcluster/" </FilesMatch>
En plus des directives de configuration qui contr�lent le
comportement de mod_proxy
, de nombreuses
variables d'environnement permettent de piloter le
fournisseur du protocole FCGI :
mod_proxy_fcgi
ne cr�era jamais
ni n'exportera la variable d'environnement PATH_INFO,
ce qui permet au serveur FCGI d'arri�re-plan de d�terminer
correctement SCRIPT_NAME et Script-URI, et
de se conformer � la section 3.3 de la RFC 3875. Si au contraire
vous avez souhaitez que mod_proxy_fcgi
g�n�re une
"estimation la plus exacte possible" de PATH_INFO,
d�finissez la variable d'environnement
proxy-fcgi-pathinfo. Ceci peut servir de
contournement pour une bogue pr�sente dans certaines
impl�mentations de FCGI. Cette variable peut �tre
multivalu�e afin de pouvoir choisir la valeur la plus appropri�e
(versions 2.4.11 et sup�rieures) :