blob: b50ab8171dc834e23b98d897446aed106a80cbd5 [file] [log] [blame]
<?xml version="1.0"?>
<!DOCTYPE modulesynopsis SYSTEM "../style/modulesynopsis.dtd">
<?xml-stylesheet type="text/xsl" href="../style/manual.fr.xsl"?>
<!-- English Revision : 1520876 -->
<!-- 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>
<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>Cette application doit être en mesure de gérer plusieurs
connexions simultanées. Par défaut, <module>mod_proxy</module>
permet la réutilisation des connexions, si bien que lorsque le
traitement d'une requête est terminé, le processus enfant httpd
garde la connexion ouverte, et cette dernière ne sera pas réutilisée
avant que le même processus httpd ne redirige une autre requête vers
l'application. Si l'application FastCGI n'est pas en mesure de gérer
un nombre suffisant de connexions simultanées avec httpd, les
requêtes peuvent être bloquées jusqu'à ce que l'application ferme
une connexion existante. Pour remédier à ce problème, on peut
désactiver la réutilisation des connexions à l'aide de la directive
<directive>ProxyPass</directive>, comme indiqué dans l'exemple
suivant :</p>
<example><title>Instance d'application unique, pas de réutilisation
des connexions</title>
<highlight language="config">
ProxyPass /mon_appli/ fcgi://localhost:4000/ disablereuse=on
</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/
&lt;Proxy balancer://myappcluster/&gt;
BalancerMember fcgi://localhost:4000
BalancerMember fcgi://localhost:4001
&lt;/Proxy&gt;
</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.</dd>
</dl>
</section>
</modulesynopsis>