1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
|
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE modulesynopsis SYSTEM "../style/modulesynopsis.dtd">
<?xml-stylesheet type="text/xsl" href="../style/manual.fr.xsl"?>
<!-- English Revision : 1755335 -->
<!-- French translation : Lucien GENTIS -->
<!-- $LastChangedRevision: 2016071301 $ -->
<!--
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_scgi.xml.meta">
<name>mod_proxy_scgi</name>
<description>Module fournissant le support de la passerelle SCGI à
<module>mod_proxy</module></description>
<status>Extension</status>
<sourcefile>mod_proxy_scgi.c</sourcefile>
<identifier>proxy_scgi_module</identifier>
<summary>
<p>Pour pouvoir fonctionner, ce module <em>requiert</em> le
chargement de <module>mod_proxy</module>. Il fournit le support du
<a href="http://python.ca/scgi/protocol.txt">protocole SCGI, version
1</a>.</p>
<p>Ainsi, pour être en mesure de traiter le protocole SCGI,
<module>mod_proxy</module> et <module>mod_proxy_scgi</module>
doivent être chargés dans le serveur.</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><module>mod_proxy</module></seealso>
<seealso><module>mod_proxy_balancer</module></seealso>
<section id="examples"><title>Exemples</title>
<p>Rappelez-vous, pour que les exemples suivants puissent
fonctionner, vous devez activer <module>mod_proxy</module> et
<module>mod_proxy_scgi</module>.</p>
<example><title>Passerelle simple</title>
<highlight language="config">
ProxyPass "/scgi-bin/" "scgi://localhost:4000/"
</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</title>
<highlight language="config">
ProxyPass "/scgi-bin/" "balancer://somecluster/"
<Proxy balancer://somecluster>
BalancerMember scgi://localhost:4000
BalancerMember scgi://localhost:4001
</Proxy>
</highlight>
</example>
</section>
<section id="env"><title>Variables d'environnement</title>
<p>En plus des directives de configuration qui permettent de
contrôler le comportement de <module>mod_proxy</module>, une
<dfn>variable d'environnement</dfn> peut aussi
contrôler le fournisseur de protocole SCGI :</p>
<dl>
<dt>proxy-scgi-pathinfo</dt>
<dd>Par défaut, <module>mod_proxy_scgi</module> ne créera ni
exportera jamais la variable d'environnement
<var>PATH_INFO</var>. Ceci permet au serveur SCGI d'arrière-plan
de déterminer correctement <var>SCRIPT_NAME</var> et
<var>Script-URI</var>, et d'être en conformité avec la section
3.3 de la RFC 3875. Si au contraire vous souhaitez que
<module>mod_proxy_scgi</module> génère une estimation la plus
précise possible de <var>PATH_INFO</var>, définissez cette
variable d'environnement. La variable doit être définie avant
que la directive <directive module="mod_env">SetEnv</directive> ne soit
effective. Il est possible d'utiliser à la place la directive
<directive module="mod_setenvif">SetEnvIf</directive> : <code>SetEnvIf
Request_URI . proxy-scgi-pathinfo</code>
</dd>
</dl>
</section>
<directivesynopsis>
<name>ProxySCGISendfile</name>
<description>Active l'évaluation du pseudo en-tête de réponse
<var>X-Sendfile</var></description>
<syntax>ProxySCGISendfile On|Off|<var>nom-en-tête</var></syntax>
<default>ProxySCGISendfile Off</default>
<contextlist><context>server config</context><context>virtual host</context>
<context>directory</context></contextlist>
<usage>
<p>La directive <directive>ProxySCGISendfile</directive> permet au
serveur SCGI d'arrière-plan de faire servir les fichiers directement par la
passerelle. Ceci s'avère bénéfique en matière de performances —
httpd peut alors utiliser <code>sendfile</code> ou d'autres
optimisations, ce qui n'est pas possible si les fichiers passent par
le socket du serveur cible. En outre, les fichiers ne sont transmis
qu'une seule fois.</p>
<p>L'argument de la directive
<directive>ProxySCGISendfile</directive> détermine le comportement
de la passerelle :</p>
<dl>
<dt><code>Off</code></dt>
<dd>Aucun traitement particulier n'est effectué.</dd>
<dt><code>On</code></dt>
<dd>La passerelle recherche un en-tête dans la réponse du serveur
cible nommé <code>X-Sendfile</code>, et interprète sa valeur comme
le nom du fichier à servir. L'en-tête est ensuite supprimé de la
réponse finale. Cet argument produit le même effet que
<code>ProxySCGISendfile X-Sendfile</code>.</dd>
<dt>toute autre valeur</dt>
<dd>Identique à <code>On</code>, mais au lieu de rechercher le nom
d'en-tête codé en dur <code>X-Sendfile</code>, c'est la valeur de
l'argument qui constitue le nom de l'en-tête à rechercher.</dd>
</dl>
<example><title>Exemple</title>
<highlight language="config">
# Utilise le nom d'en-tête par défaut (X-Sendfile)
ProxySCGISendfile On
# Utilise un nom d'en-tête différent
ProxySCGISendfile X-Send-Static
</highlight>
</example>
</usage>
</directivesynopsis>
<directivesynopsis>
<name>ProxySCGIInternalRedirect</name>
<description>Active ou désactive les réponses de redirection interne en
provenance du serveur cible.</description>
<syntax>ProxySCGIInternalRedirect On|Off|<var>Headername</var></syntax>
<default>ProxySCGIInternalRedirect On</default>
<contextlist><context>server config</context><context>virtual host</context>
<context>directory</context></contextlist>
<compatibility>Le paramètre <var>Headername</var> est disponible depuis
la version 2.4.13 du serveur HTTP Apache.</compatibility>
<usage>
<p>La directive <directive>ProxySCGIInternalRedirect</directive>
permet au serveur cible de rediriger en interne la passerelle vers
une URL différente. Cette fonctionnalité trouve son origine dans
<module>mod_cgi</module> qui redirige la réponse en interne si
l'état de la réponse est <code>OK</code> (<code>200</code>), et si
la réponse contient un en-tête <code>Location</code> (ou un autre
en-tête défini) dont la valeur
débute par un slash (<code>/</code>). Cette valeur est interprétée
comme une nouvelle URL locale vers laquelle Apache httpd effectue sa
redirection.</p>
<p>De ce point de vue, <module>mod_proxy_scgi</module> fait la même
chose que <module>mod_cgi</module>, mais vous pouvez en plus
désactiver la fonctionnalité ou spécifier l'utilisation d'un en-tête
autre que <code>Location</code>.</p>
<example><title>Exemple</title>
<highlight language="config">
ProxySCGIInternalRedirect Off
# Django et certains autres frameworks qualifient pleinement les "URLs
# locales" définies par l'application ; il faut donc utiliser un autre
# en-tête.
<Location /django-app/>
ProxySCGIInternalRedirect X-Location
</Location>
</highlight>
</example>
</usage>
</directivesynopsis>
</modulesynopsis>
|