1 <?xml version="1.0" encoding="UTF-8" ?>
2 <!DOCTYPE modulesynopsis SYSTEM "../style/modulesynopsis.dtd">
3 <?xml-stylesheet type="text/xsl" href="../style/manual.fr.xsl"?>
4 <!-- English Revision : 1755335 -->
5 <!-- French translation : Lucien GENTIS -->
6 <!-- $LastChangedRevision: 2016071301 $ -->
9 Licensed to the Apache Software Foundation (ASF) under one or more
10 contributor license agreements. See the NOTICE file distributed with
11 this work for additional information regarding copyright ownership.
12 The ASF licenses this file to You under the Apache License, Version 2.0
13 (the "License"); you may not use this file except in compliance with
14 the License. You may obtain a copy of the License at
16 http://www.apache.org/licenses/LICENSE-2.0
18 Unless required by applicable law or agreed to in writing, software
19 distributed under the License is distributed on an "AS IS" BASIS,
20 WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
21 See the License for the specific language governing permissions and
22 limitations under the License.
25 <modulesynopsis metafile="mod_proxy_scgi.xml.meta">
27 <name>mod_proxy_scgi</name>
28 <description>Module fournissant le support de la passerelle SCGI à
29 <module>mod_proxy</module></description>
30 <status>Extension</status>
31 <sourcefile>mod_proxy_scgi.c</sourcefile>
32 <identifier>proxy_scgi_module</identifier>
35 <p>Pour pouvoir fonctionner, ce module <em>requiert</em> le
36 chargement de <module>mod_proxy</module>. Il fournit le support du
37 <a href="http://python.ca/scgi/protocol.txt">protocole SCGI, version
40 <p>Ainsi, pour être en mesure de traiter le protocole SCGI,
41 <module>mod_proxy</module> et <module>mod_proxy_scgi</module>
42 doivent être chargés dans le serveur.</p>
44 <note type="warning"><title>Avertissement</title>
45 <p>N'activez pas la fonctionnalité de mandataire avant d'avoir <a
46 href="mod_proxy.html#access">sécurisé votre serveur</a>. Les
47 serveurs mandataires ouverts sont dangereux non seulement pour
48 votre réseau, mais aussi pour l'Internet au sens large.</p>
52 <seealso><module>mod_proxy</module></seealso>
53 <seealso><module>mod_proxy_balancer</module></seealso>
55 <section id="examples"><title>Exemples</title>
56 <p>Rappelez-vous, pour que les exemples suivants puissent
57 fonctionner, vous devez activer <module>mod_proxy</module> et
58 <module>mod_proxy_scgi</module>.</p>
60 <example><title>Passerelle simple</title>
61 <highlight language="config">
62 ProxyPass "/scgi-bin/" "scgi://localhost:4000/"
66 <p>La passerelle à répartition de charge nécessite le chargement du
67 module <module>mod_proxy_balancer</module> et d'au moins un module
68 fournissant un algorithme de répartition de charge, comme
69 <module>mod_lbmethod_byrequests</module> en plus des modules
70 déjà cités. <module>mod_lbmethod_byrequests</module> est le module
71 par défaut et sera utilisé dans cet exemple de configuration.</p>
73 <example><title>Passerelle à répartition de charge</title>
74 <highlight language="config">
75 ProxyPass "/scgi-bin/" "balancer://somecluster/"
76 <Proxy balancer://somecluster>
77 BalancerMember scgi://localhost:4000
78 BalancerMember scgi://localhost:4001
84 <section id="env"><title>Variables d'environnement</title>
85 <p>En plus des directives de configuration qui permettent de
86 contrôler le comportement de <module>mod_proxy</module>, une
87 <dfn>variable d'environnement</dfn> peut aussi
88 contrôler le fournisseur de protocole SCGI :</p>
90 <dt>proxy-scgi-pathinfo</dt>
91 <dd>Par défaut, <module>mod_proxy_scgi</module> ne créera ni
92 exportera jamais la variable d'environnement
93 <var>PATH_INFO</var>. Ceci permet au serveur SCGI d'arrière-plan
94 de déterminer correctement <var>SCRIPT_NAME</var> et
95 <var>Script-URI</var>, et d'être en conformité avec la section
96 3.3 de la RFC 3875. Si au contraire vous souhaitez que
97 <module>mod_proxy_scgi</module> génère une estimation la plus
98 précise possible de <var>PATH_INFO</var>, définissez cette
99 variable d'environnement. La variable doit être définie avant
100 que la directive <directive module="mod_env">SetEnv</directive> ne soit
101 effective. Il est possible d'utiliser à la place la directive
102 <directive module="mod_setenvif">SetEnvIf</directive> : <code>SetEnvIf
103 Request_URI . proxy-scgi-pathinfo</code>
109 <name>ProxySCGISendfile</name>
110 <description>Active l'évaluation du pseudo en-tête de réponse
111 <var>X-Sendfile</var></description>
112 <syntax>ProxySCGISendfile On|Off|<var>nom-en-tête</var></syntax>
113 <default>ProxySCGISendfile Off</default>
114 <contextlist><context>server config</context><context>virtual host</context>
115 <context>directory</context></contextlist>
118 <p>La directive <directive>ProxySCGISendfile</directive> permet au
119 serveur cible SCGI de faire servir les fichiers directement par la
120 passerelle. Ceci s'avère bénéfique en matière de performances —
121 httpd peut alors utiliser <code>sendfile</code> ou d'autres
122 optimisations, ce qui n'est pas possible si les fichiers passent par
123 le socket du serveur cible. En outre, les fichiers ne sont transmis
124 qu'une seule fois.</p>
125 <p>L'argument de la directive
126 <directive>ProxySCGISendfile</directive> détermine le comportement
127 de la passerelle :</p>
129 <dt><code>Off</code></dt>
130 <dd>Aucun traitement particulier n'est effectué.</dd>
132 <dt><code>On</code></dt>
133 <dd>La passerelle recherche un en-tête dans la réponse du serveur
134 cible nommé <code>X-Sendfile</code>, et interprète sa valeur comme
135 le nom du fichier à servir. L'en-tête est ensuite supprimé de la
136 réponse finale. Cet argument produit le même effet que
137 <code>ProxySCGISendfile X-Sendfile</code>.</dd>
139 <dt>toute autre valeur</dt>
140 <dd>Identique à <code>On</code>, mais au lieu de rechercher le nom
141 d'en-tête codé en dur <code>X-Sendfile</code>, c'est la valeur de
142 l'argument qui constitue le nom de l'en-tête à rechercher.</dd>
145 <example><title>Exemple</title>
146 <highlight language="config">
147 # Utilise le nom d'en-tête par défaut (X-Sendfile)
150 # Utilise un nom d'en-tête différent
151 ProxySCGISendfile X-Send-Static
158 <name>ProxySCGIInternalRedirect</name>
159 <description>Active ou désactive les réponses de redirection interne en
160 provenance du serveur cible.</description>
161 <syntax>ProxySCGIInternalRedirect On|Off|<var>Headername</var></syntax>
162 <default>ProxySCGIInternalRedirect On</default>
163 <contextlist><context>server config</context><context>virtual host</context>
164 <context>directory</context></contextlist>
165 <compatibility>Le paramètre <var>Headername</var> est disponible depuis
166 la version 2.4.13 du serveur HTTP Apache.</compatibility>
169 <p>La directive <directive>ProxySCGIInternalRedirect</directive>
170 permet au serveur cible de rediriger en interne la passerelle vers
171 une URL différente. Cette fonctionnalité trouve son origine dans
172 <module>mod_cgi</module> qui redirige la réponse en interne si
173 l'état de la réponse est <code>OK</code> (<code>200</code>), et si
174 la réponse contient un en-tête <code>Location</code> (ou un autre
175 en-tête défini) dont la valeur
176 débute par un slash (<code>/</code>). Cette valeur est interprétée
177 comme une nouvelle URL locale vers laquelle Apache httpd effectue sa
180 <p>De ce point de vue, <module>mod_proxy_scgi</module> fait la même
181 chose que <module>mod_cgi</module>, mais vous pouvez en plus
182 désactiver la fonctionnalité ou spécifier l'utilisation d'un en-tête
183 autre que <code>Location</code>.</p>
185 <example><title>Exemple</title>
186 <highlight language="config">
187 ProxySCGIInternalRedirect Off
188 # Django et certains autres frameworks qualifient pleinement les "URLs
189 # locales" définies par l'application ; il faut donc utiliser un autre
191 <Location /django-app/>
192 ProxySCGIInternalRedirect X-Location