<-
Apache > Serveur HTTP > Documentation > Version 2.4 > Modules

Module Apache mod_proxy_fcgi

Langues Disponibles:  en  |  fr 

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

Sommaire

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.

Avertissement

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.

Sujets

Directives

Ce module ne fournit aucune directive.

Traitement des bugs

Voir aussi

top

Exemples

Pour que ces exemples fonctionnent, vous ne devez pas oublier d'activer mod_proxy et mod_proxy_fcgi.

Instance d'application unique

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 :

Instance d'application unique, r�utilisation des connexions (versions 2.4.11 et sup�rieures)

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.

PHP-FPM

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.

PHP-FPM with UDS

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

Passerelle � r�partition de charge vers plusieurs instances de l'application

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

Mandataire via un gestionnaire

<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>
top

Variables d'environnement

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 :

proxy-fcgi-pathinfo
Par d�faut, 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) :
first-dot
PATH_INFO est extrait � partir du slash qui suit le premier "." de l'URL.
last-dot
PATH_INFO est extrait � partir du slash qui suit le dernier "." de l'URL.
full
PATH_INFO est calcul� en supposant que l'URL correspond au chemin du syst�me de fichiers.
unescape
PATH_INFO correspond � la partie chemin de l'URL avec ses s�quences d'�chappement d�cod�es.
toute autre valeur
PATH_INFO correspond � la partie chemin de l'URL. Auparavant, c'�tait la seule option pour proxy-fcgi-pathinfo.

Langues Disponibles:  en  |  fr 

top

Commentaires

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.