mirror of
https://github.com/apache/httpd.git
synced 2025-08-06 11:06:17 +00:00

git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/branches/2.4.x@1677180 13f79535-47bb-0310-9956-ffa450edef68
215 lines
10 KiB
Plaintext
215 lines
10 KiB
Plaintext
<?xml version="1.0"?>
|
|
<!DOCTYPE modulesynopsis SYSTEM "../style/modulesynopsis.dtd">
|
|
<?xml-stylesheet type="text/xsl" href="../style/manual.fr.xsl"?>
|
|
<!-- English Revision: 1673563 -->
|
|
<!-- French translation : Lucien GENTIS -->
|
|
<!-- Reviewed by : Vincent Deffontaines -->
|
|
|
|
<!--
|
|
Licensed to the Apache Software Foundation (ASF) under one or more
|
|
contributor license agreements. See the NOTICE file distributed with
|
|
this work for additional information regarding copyright ownership.
|
|
The ASF licenses this file to You under the Apache License, Version 2.0
|
|
(the "License"); you may not use this file except in compliance with
|
|
the License. You may obtain a copy of the License at
|
|
|
|
http://www.apache.org/licenses/LICENSE-2.0
|
|
|
|
Unless required by applicable law or agreed to in writing, software
|
|
distributed under the License is distributed on an "AS IS" BASIS,
|
|
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
See the License for the specific language governing permissions and
|
|
limitations under the License.
|
|
-->
|
|
|
|
<modulesynopsis metafile="mod_proxy_fcgi.xml.meta">
|
|
|
|
<name>mod_proxy_fcgi</name>
|
|
<description>Module fournissant le support de FastCGI à
|
|
<module>mod_proxy</module></description>
|
|
<status>Extension</status>
|
|
<sourcefile>mod_proxy_fcgi.c</sourcefile>
|
|
<identifier>proxy_fcgi_module</identifier>
|
|
<compatibility>Disponible depuis la version 2.3 d'Apache</compatibility>
|
|
|
|
<summary>
|
|
<p>Pour fonctionner, ce module <em>nécessite</em> le chargement de
|
|
<module>mod_proxy</module>. Il fournit le support du protocole <a
|
|
href="http://www.fastcgi.com/">FastCGI</a>.</p>
|
|
|
|
<p>Ainsi, pour pouvoir traiter le protocole <code>FastCGI</code>,
|
|
<module>mod_proxy</module> et <module>mod_proxy_fcgi</module>
|
|
doivent être chargés dans le serveur.</p>
|
|
|
|
<p>A la différence de <a
|
|
href="http://httpd.apache.org/mod_fcgid/">mod_fcgid</a> et <a
|
|
href="http://www.fastcgi.com/">mod_fastcgi</a>,
|
|
<module>mod_proxy_fcgi</module> n'est pas en mesure de démarrer le
|
|
processus de l'application ; <program>fcgistarter</program> 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.</p>
|
|
|
|
<note type="warning"><title>Avertissement</title>
|
|
<p>N'activez pas la fonctionnalité de mandataire avant d'avoir <a
|
|
href="mod_proxy.html#access">sécurisé votre serveur</a>. Les
|
|
serveurs mandataires ouverts sont dangereux non seulement pour
|
|
votre réseau, mais aussi pour l'Internet au sens large.</p>
|
|
</note>
|
|
</summary>
|
|
|
|
<seealso><program>fcgistarter</program></seealso>
|
|
<seealso><module>mod_proxy</module></seealso>
|
|
<seealso><module>mod_authnz_fcgi</module></seealso>
|
|
|
|
<section id="examples"><title>Exemples</title>
|
|
<p>Pour que ces exemples fonctionnent, vous ne devez pas oublier
|
|
d'activer <module>mod_proxy</module> et
|
|
<module>mod_proxy_fcgi</module>.</p>
|
|
|
|
<example><title>Instance d'application unique</title>
|
|
<highlight language="config">
|
|
ProxyPass "/mon_appli/" "fcgi://localhost:4000/"
|
|
</highlight>
|
|
</example>
|
|
|
|
|
|
<p><module>mod_proxy_fcgi</module> 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 :</p>
|
|
|
|
<example><title>Instance d'application unique, réutilisation
|
|
des connexions (versions 2.4.11 et supérieures)</title>
|
|
<highlight language="config">
|
|
ProxyPass "/myapp/" "fcgi://localhost:4000/" enablereuse=on
|
|
</highlight>
|
|
</example>
|
|
|
|
<p>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.</p>
|
|
<example><title>PHP-FPM</title>
|
|
<highlight language="config">
|
|
ProxyPassMatch "^/myapp/.*\.php(/.*)?$" "fcgi://localhost:9000/var/www/" enablereuse=on
|
|
</highlight>
|
|
</example>
|
|
|
|
<p>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.</p>
|
|
<example><title>PHP-FPM with UDS</title>
|
|
<highlight language="config">
|
|
# A ce jour, UDS ne supporte pas la réutilisation des connexions
|
|
ProxyPassMatch "^/(.*\.php(/.*)?)$" "unix:/var/run/php5-fpm.sock|fcgi://localhost/var/www/"
|
|
</highlight>
|
|
</example>
|
|
|
|
<p>La passerelle à répartition de charge nécessite le chargement du
|
|
module <module>mod_proxy_balancer</module> et d'au moins un module
|
|
fournissant un algorithme de répartition de charge, comme
|
|
<module>mod_lbmethod_byrequests</module> en plus des modules
|
|
déjà cités. <module>mod_lbmethod_byrequests</module> est le module
|
|
par défaut et sera utilisé dans cet exemple de configuration.</p>
|
|
|
|
<example><title>Passerelle à répartition de charge vers plusieurs
|
|
instances de l'application</title>
|
|
<highlight language="config">
|
|
ProxyPass "/myapp/" "balancer://myappcluster/"
|
|
<Proxy "balancer://myappcluster/">
|
|
BalancerMember "fcgi://localhost:4000"
|
|
BalancerMember "fcgi://localhost:4001"
|
|
</Proxy>
|
|
</highlight>
|
|
</example>
|
|
|
|
<p>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 <a
|
|
href="mod_proxy.html#workers">worker (configuration d'un
|
|
mandataire)</a> 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é.
|
|
</p>
|
|
<example><title>Mandataire via un gestionnaire</title>
|
|
<highlight language="config">
|
|
<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>
|
|
</highlight>
|
|
</example>
|
|
</section>
|
|
|
|
<section id="env"><title>Variables d'environnement</title>
|
|
<p>En plus des directives de configuration qui contrôlent le
|
|
comportement de <module>mod_proxy</module>, de nombreuses
|
|
<dfn>variables d'environnement</dfn> permettent de piloter le
|
|
fournisseur du protocole FCGI :</p>
|
|
<dl>
|
|
<dt>proxy-fcgi-pathinfo</dt>
|
|
<dd>Par défaut, <module>mod_proxy_fcgi</module> ne créera jamais
|
|
ni n'exportera la variable d'environnement <var>PATH_INFO</var>,
|
|
ce qui permet au serveur FCGI d'arrière-plan de déterminer
|
|
correctement <var>SCRIPT_NAME</var> et <var>Script-URI</var>, et
|
|
de se conformer à la section 3.3 de la RFC 3875. Si au contraire
|
|
vous avez souhaitez que <module>mod_proxy_fcgi</module> génère une
|
|
"estimation la plus exacte possible" de <var>PATH_INFO</var>,
|
|
définissez la variable d'environnement
|
|
<var>proxy-fcgi-pathinfo</var>. 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) :
|
|
<dl>
|
|
<dt>first-dot</dt>
|
|
<dd>PATH_INFO est extrait à partir du slash qui suit le
|
|
<em>premier</em> "." de l'URL.</dd>
|
|
<dt>last-dot</dt>
|
|
<dd>PATH_INFO est extrait à partir du slash qui suit le
|
|
<em>dernier</em> "." de l'URL.</dd>
|
|
<dt>full</dt>
|
|
<dd>PATH_INFO est calculé en supposant que l'URL correspond au
|
|
chemin du système de fichiers.</dd>
|
|
<dt>unescape</dt>
|
|
<dd>PATH_INFO correspond à la partie chemin de l'URL avec ses
|
|
séquences d'échappement décodées.</dd>
|
|
<dt>toute autre valeur</dt>
|
|
<dd>PATH_INFO correspond à la partie chemin de l'URL.
|
|
Auparavant, c'était la seule option pour proxy-fcgi-pathinfo.</dd>
|
|
</dl>
|
|
</dd>
|
|
</dl>
|
|
</section>
|
|
|
|
</modulesynopsis>
|