]> granicus.if.org Git - apache/blob - docs/manual/mod/mod_proxy.xml.fr
update transformation
[apache] / docs / manual / mod / mod_proxy.xml.fr
1 <?xml version="1.0"?>
2 <!DOCTYPE modulesynopsis SYSTEM "../style/modulesynopsis.dtd">
3 <?xml-stylesheet type="text/xsl" href="../style/manual.fr.xsl"?>
4 <!-- English Revision: 1560518:1562300 (outdated) -->
5 <!-- French translation : Lucien GENTIS -->
6 <!-- Reviewed by : Vincent Deffontaines -->
7
8 <!--
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
15
16      http://www.apache.org/licenses/LICENSE-2.0
17
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.
23 -->
24
25 <modulesynopsis metafile="mod_proxy.xml.meta">
26
27 <name>mod_proxy</name>
28 <description>Serveur mandataire/passerelle multi-protocole</description>
29 <status>Extension</status>
30 <sourcefile>mod_proxy.c</sourcefile>
31 <identifier>proxy_module</identifier>
32
33 <summary>
34     <note type="warning"><title>Avertissement</title>
35       <p>N'activez pas la fonctionnalit&eacute; de mandataire avec la directive
36       <directive module="mod_proxy">ProxyRequests</directive> avant
37       d'avoir <a href="#access">s&eacute;curis&eacute; votre serveur</a>. Les serveurs
38       mandataires ouverts sont dangereux pour votre r&eacute;seau,
39       mais aussi pour l'Internet au sens large.</p>
40     </note>
41
42     <p><module>mod_proxy</module> et ses modules associ&eacute;s impl&eacute;mentent
43     un mandataire/passerelle pour le serveur HTTP Apache, et supportent
44     de nombreux protocoles courants, ainsi que plusieurs algorithmes de
45     r&eacute;partition de charge. Le support de protocoles et d'algorithmes de
46     r&eacute;partition de charge suppl&eacute;mentaires peut &ecirc;tre assur&eacute; par des
47     modules tiers.</p>
48
49     <p>Un jeu de modules charg&eacute;s dans le serveur permet de fournir les
50     fonctionnalit&eacute;s souhait&eacute;es. Ces modules peuvent &ecirc;tre inclus
51     statiquement &agrave; la compilation, ou dynamiquement via la directive
52     <directive module="mod_so">LoadModule</directive>. Ce jeu de module
53     doit comporter :</p>
54
55     <ul>
56       <li><module>mod_proxy</module>, qui fournit les fonctionnalit&eacute;s de
57       base d'un mandataire</li>
58
59       <li><module>mod_proxy_balancer</module> et un ou plusieurs modules
60       de r&eacute;partition, si la r&eacute;partition de charge doit &ecirc;tre mise en
61       oeuvre (Voir la documentation de
62       <module>mod_proxy_balancer</module> pour plus de d&eacute;tails).</li>
63
64       <li>un ou plusieurs modules de types de mandataire, ou protocoles
65       :
66
67         <table border="1">
68         <tr><th>Protocole</th><th>Module</th></tr>
69         <tr><td>AJP13 (Protocole Apache JServe version
70           1.3)</td><td><module>mod_proxy_ajp</module></td></tr>
71         <tr><td>CONNECT (pour
72           SSL)</td><td><module>mod_proxy_connect</module></td></tr>
73         <tr><td>FastCGI</td><td><module>mod_proxy_fcgi</module></td></tr>
74         <tr><td>ftp</td><td><module>mod_proxy_ftp</module></td></tr>
75         <tr><td>HTTP/0.9, HTTP/1.0, et
76           HTTP/1.1</td><td><module>mod_proxy_http</module></td></tr>
77         <tr><td>SCGI</td><td><module>mod_proxy_scgi</module></td></tr>
78         <tr><td>WS and WSS (Web-sockets)</td><td><module>mod_proxy_wstunnel</module></td></tr>
79         </table>
80       </li>
81     </ul>
82
83     <p>En outre, d'autres modules fournissent des fonctionnalit&eacute;s
84     &eacute;tendues. <module>mod_cache</module> et ses modules associ&eacute;s
85     fournissent la mise en cache. Les directives <code>SSLProxy*</code>
86     du module <module>mod_ssl</module> permettent de contacter des
87     serveurs distants en utilisant le protocole SSL/TLS. Ces modules
88     additionnels devront &ecirc;tre charg&eacute;s et configur&eacute;s pour pouvoir
89     disposer de ces fonctionnalit&eacute;s.</p>
90 </summary>
91 <seealso><module>mod_cache</module></seealso>
92 <seealso><module>mod_proxy_ajp</module></seealso>
93 <seealso><module>mod_proxy_connect</module></seealso>
94 <seealso><module>mod_proxy_fcgi</module></seealso>
95 <seealso><module>mod_proxy_ftp</module></seealso>
96 <seealso><module>mod_proxy_http</module></seealso>
97 <seealso><module>mod_proxy_scgi</module></seealso>
98 <seealso><module>mod_proxy_wstunnel</module></seealso>
99 <seealso><module>mod_proxy_balancer</module></seealso>
100 <seealso><module>mod_ssl</module></seealso>
101
102     <section id="forwardreverse"><title>Mandataires directs et
103     mandataires/passerelles inverses</title>
104       <p>Le serveur HTTP Apache peut &ecirc;tre configur&eacute; dans les deux modes mandataire
105       <dfn>direct</dfn> et mandataire <dfn>inverse</dfn> (aussi nomm&eacute;
106       mode <dfn>passerelle</dfn>).</p>
107
108       <p>Un <dfn>mandataire direct</dfn> standard est un serveur
109       interm&eacute;diaire qui s'intercale entre le client et le <em>serveur
110       demand&eacute;</em>. Pour obtenir un contenu h&eacute;berg&eacute; par
111       le serveur demand&eacute;, le client envoie une requ&ecirc;te au
112       mandataire en nommant le serveur demand&eacute; comme
113       cible, puis le mandataire extrait le contenu depuis le
114       serveur demand&eacute; et le renvoie enfin au client. Le client doit &ecirc;tre
115       configur&eacute; de mani&egrave;re appropri&eacute;e pour pouvoir utiliser le mandataire
116       direct afin d'acc&eacute;der &agrave; d'autres sites.</p>
117
118       <p>L'acc&egrave;s &agrave; Internet depuis des clients situ&eacute;s derri&egrave;re un
119       pare-feu est une utilisation typique du mandataire direct. Le
120       mandataire direct peut aussi utiliser la mise en cache (fournie
121       par <module>mod_cache</module>) pour r&eacute;duire la charge du
122       r&eacute;seau.</p>
123
124       <p>La fonctionnalit&eacute; de mandataire direct est activ&eacute;e via la
125       directive <directive module="mod_proxy">ProxyRequests</directive>.
126       Comme les mandataires directs permettent aux clients d'acc&eacute;der &agrave;
127       des sites quelconques via votre serveur et de dissimuler leur
128       v&eacute;ritable origine, il est indispensable de <a
129       href="#access">s&eacute;curiser votre serveur</a> de fa&ccedil;on &agrave; ce que seuls
130       les clients autoris&eacute;s puissent acc&eacute;der &agrave; votre serveur avant
131       d'activer la fonctionnalit&eacute; de mandataire direct.</p>
132
133       <p>Un <dfn>mandataire inverse</dfn> (ou <dfn>passerelle</dfn>),
134       quant &agrave; lui, appara&icirc;t au client comme un serveur web standard.
135       Aucune configuration particuli&egrave;re du client n'est n&eacute;cessaire. Le
136       client adresse ses demandes de contenus ordinaires dans l'espace
137       de nommage du mandataire inverse. Ce dernier d&eacute;cide alors o&ugrave;
138       envoyer ces requ&ecirc;tes, et renvoie le contenu au client comme s'il
139       l'h&eacute;bergeait lui-m&ecirc;me.</p>
140
141       <p>L'acc&egrave;s d'utilisateurs depuis Internet vers un serveur situ&eacute;
142       derri&egrave;re un pare-feu est une utilisation typique du mandataire
143       inverse. On peut aussi utiliser les mandataires inverses pour
144       mettre en oeuvre une r&eacute;partition de charge entre plusieurs
145       serveurs en arri&egrave;re-plan, ou fournir un cache pour un serveur
146       d'arri&egrave;re-plan plus lent. Les mandataires inverses peuvent aussi
147       tout simplement servir &agrave; rassembler plusieurs serveurs dans le
148       m&ecirc;me espace de nommage d'URLs.</p>
149
150       <p>La fonctionnalit&eacute; de mandataire inverse est activ&eacute;e via la
151       directive <directive module="mod_proxy">ProxyPass</directive> ou
152       le drapeau <code>[P]</code> de la directive <directive
153       module="mod_rewrite">RewriteRule</directive>. Il n'est
154       <strong>pas</strong> n&eacute;cessaire de d&eacute;finir <directive
155       module="mod_proxy">ProxyRequests</directive> pour configurer
156       un mandataire inverse.</p>
157     </section> <!-- /forwardreverse -->
158
159     <section id="examples"><title>Exemples simples</title>
160
161     <p>Les exemples ci-dessous illustrent de mani&egrave;re tr&egrave;s basique la
162     mise en oeuvre de la fonctionnalit&eacute; de mandataire et ne sont l&agrave; que
163     pour vous aider &agrave; d&eacute;marrer. Reportez-vous &agrave; la documentation de
164     chaque directive.</p>
165
166     <p>Si en outre, vous d&eacute;sirez activer la mise en cache, consultez la
167     documentation de <module>mod_cache</module>.</p>
168
169     <example><title>Mandataire inverse</title>
170     <highlight language="config">
171 ProxyPass /foo http://foo.example.com/bar
172 ProxyPassReverse /foo http://foo.example.com/bar
173     </highlight>
174     </example>
175
176     <example><title>Mandataire direct</title>
177     <highlight language="config">
178 ProxyRequests On
179 ProxyVia On
180
181 &lt;Proxy *&gt;
182   Require host internal.example.com
183 &lt;/Proxy&gt;
184     </highlight>
185     </example>
186     </section> <!-- /examples -->
187
188     <section id="workers"><title>Workers</title>
189       <p>Le mandataire g&egrave;re la configuration et les param&egrave;tres de
190       communication des serveurs originaux au sein d'objets nomm&eacute;s
191       <dfn>workers</dfn>. Deux types de worker sont fournis : le worker
192       par d&eacute;faut du mandataire direct et le worker par d&eacute;faut du
193       mandataire inverse. Il est aussi possible de d&eacute;finir explicitement
194       des workers suppl&eacute;mentaires.</p>
195
196       <p>Les deux workers par d&eacute;faut poss&egrave;dent une configuration fig&eacute;e
197       et seront utilis&eacute;s si aucun autre worker ne correspond &agrave; la
198       requ&ecirc;te. Ils n'utilisent ni les jeux de connexions (connection
199       pooling), ni les
200       connexions HTTP persistantes (Keep-Alive). En effet, les
201       connexions TCP vers le serveur original sont ferm&eacute;es et ouvertes
202       pour chaque requ&ecirc;te.</p>
203
204       <p>Les workers d&eacute;finis explicitement sont identifi&eacute;s par leur URL.
205       Ils sont en g&eacute;n&eacute;ral d&eacute;finis via les directives <directive
206       module="mod_proxy">ProxyPass</directive> ou <directive
207       module="mod_proxy">ProxyPassMatch</directive> lorsqu'on les
208       utilise dans le cadre d'un mandataire inverse :</p>
209
210       <example>
211       <highlight language="config">
212           ProxyPass /example http://backend.example.com connectiontimeout=5 timeout=30
213           </highlight>
214       </example>
215       
216
217       <p>Cette directive va cr&eacute;er un worker associ&eacute; &agrave; l'URL du serveur
218       original <code>http://backend.example.com</code>, et utilisant les
219       valeurs de timeout donn&eacute;es. Lorsqu'ils sont utilis&eacute;s dans le cadre
220       d'un mandataire direct, les workers sont en g&eacute;n&eacute;ral d&eacute;finis via la
221       directive <directive module="mod_proxy">ProxySet</directive>,</p>
222
223       <example>
224       <highlight language="config">
225           ProxySet http://backend.example.com connectiontimeout=5 timeout=30
226           </highlight>
227       </example>
228       
229
230       <p>ou encore via les directives <directive
231       module="mod_proxy">Proxy</directive> et <directive
232       module="mod_proxy">ProxySet</directive> :</p>
233
234       <highlight language="config">
235 &lt;Proxy http://backend.example.com&gt;
236   ProxySet connectiontimeout=5 timeout=30
237 &lt;/Proxy&gt;
238       </highlight>
239
240       <p>L'utilisation de workers d&eacute;finis explicitement dans le mode
241       mandataire direct n'est pas tr&egrave;s courante, car les mandataires
242       directs communiquent en g&eacute;n&eacute;ral avec de nombreux serveurs
243       originaux. La cr&eacute;ation explicite de workers pour certains serveurs
244       originaux peut cependant s'av&eacute;rer utile si ces serveurs sont
245       tr&egrave;s souvent sollicit&eacute;s. A leur niveau, les workers explicitement
246       d&eacute;finis ne poss&egrave;dent aucune notion de mandataire direct ou
247       inverse. Ils encapsulent un concept de communication commun avec
248       les serveurs originaux. Un worker cr&eacute;&eacute; via la directive <directive
249       module="mod_proxy">ProxyPass</directive> pour &ecirc;tre utilis&eacute; dans le
250       cadre d'un mandataire inverse sera aussi utilis&eacute; dans le cadre
251       d'un mandataire directe chaque fois que l'URL vers le serveur
252       original correspondra &agrave; l'URL du worker, et vice versa.</p>
253
254       <p>L'URL qui identifie un worker correspond &agrave; l'URL de son serveur
255       original, y compris un &eacute;ventuel chemin donn&eacute; :</p>
256
257       <highlight language="config">
258 ProxyPass /examples http://backend.example.com/examples
259 ProxyPass /docs http://backend.example.com/docs
260       </highlight>
261
262       <p>Dans cet exemple, deux workers diff&eacute;rents sont d&eacute;finis, chacun
263       d'eux utilisant des configurations et jeux de connexions
264       s&eacute;par&eacute;s.</p>
265
266       <note type="warning"><title>Partage de workers</title>
267         <p>Le partage de workers intervient lorsque les URLs des workers
268         s'entrecoupent, ce qui arrive lorsque l'URL d'un worker
269         correspond au d&eacute;but de l'URL d'un autre worker d&eacute;fini plus loin
270         dans le fichier de configuration. Dans l'exemple suivant,</p>
271
272         <highlight language="config">
273 ProxyPass /apps http://backend.example.com/ timeout=60
274 ProxyPass /examples http://backend.example.com/examples timeout=10
275         </highlight>
276
277         <p>le second worker n'est pas vraiment cr&eacute;&eacute;. C'est le premier
278         worker qui est en fait utilis&eacute;. L'avantage de ceci r&eacute;side dans
279         le fait qu'il n'existe qu'un seul jeu de connexions, ces
280         derni&egrave;res &eacute;tant donc r&eacute;utilis&eacute;es plus souvent. Notez que tous
281         les attributs de configuration d&eacute;finis explicitement pour le
282         deuxi&egrave;me worker seront ignor&eacute;s, ce qui sera journalis&eacute; en tant
283         qu'avertissement. Ainsi, dans l'exemple ci-dessus, la valeur de
284         timeout retenue pour l'URL <code>/exemples</code> sera
285         <code>60</code>, et non <code>10</code> !</p>
286
287         <p>Si vous voulez emp&ecirc;cher le partage de workers, classez vos
288         d&eacute;finitions de workers selon la longueur des URLs, de la plus
289         longue &agrave; la plus courte. Si au contraire vous voulez favoriser
290         ce partage, utilisez l'ordre de classement inverse. Voir aussi
291         l'avertissement &agrave; propos de l'ordre de classement des directives
292         <directive module="mod_proxy">ProxyPass</directive>.</p>
293
294       </note> <!-- /worker_sharing -->
295
296       <p>Les workers d&eacute;finis explicitement sont de deux sortes :
297       <dfn>workers directs</dfn> et <dfn>workers de r&eacute;partition (de
298       charge)</dfn>. Ils supportent de nombreux attributs de
299       configuration importants d&eacute;crits dans la directive <directive
300       module="mod_proxy">ProxyPass</directive>. Ces m&ecirc;mes attributs
301       peuvent aussi &ecirc;tre d&eacute;finis via la directive <directive
302       module="mod_proxy">ProxySet</directive>.</p>
303
304       <p>Le jeu d'options disponibles pour un worker direct d&eacute;pend du
305       protocole sp&eacute;cifi&eacute; dans l'URL du serveur original. Les protocoles
306       disponibles comprennent <code>ajp</code>, <code>fcgi</code>,
307       <code>ftp</code>, <code>http</code> et <code>scgi</code>.</p>
308
309       <p>Les workers de r&eacute;partition sont des workers virtuels qui
310       utilisent les workers directs, connus comme faisant partie de leurs
311       membres, pour le traitement effectif des requ&ecirc;tes. Chaque
312       r&eacute;partiteur peut comporter plusieurs membres. Lorsqu'il traite une
313       requ&ecirc;te, il choisit un de ses membres en fonction de l'algorithme
314       de r&eacute;partition de charge d&eacute;fini.</p>
315
316       <p>Un worker de r&eacute;partition est cr&eacute;&eacute; si son URL de worker comporte
317       <code>balancer</code> comme indicateur de protocole. L'URL du
318       r&eacute;partiteur permet d'identifier de mani&egrave;re unique le worker de
319       r&eacute;partition. La directive <directive
320       module="mod_proxy">BalancerMember</directive> permet d'ajouter des
321       membres au r&eacute;partiteur.</p>
322
323     </section> <!-- /workers -->
324
325     <section id="access"><title>Contr&ocirc;ler l'acc&egrave;s &agrave; votre
326     mandataire</title>
327       <p>Vous pouvez restreindre l'acc&egrave;s &agrave; votre mandataire via le bloc
328       de contr&ocirc;le <directive
329       module="mod_proxy" type="section">Proxy</directive> comme dans
330       l'exemple suivant :</p>
331
332       <highlight language="config">
333 &lt;Proxy *&gt;
334   Require ip 192.168.0
335 &lt;/Proxy&gt;
336       </highlight>
337
338       <p>Pour plus de d&eacute;tails sur les directives de contr&ocirc;le d'acc&egrave;s,
339       voir la documentation du module
340       <module>mod_authz_host</module>.</p>
341
342       <p>Restreindre l'acc&egrave;s de mani&egrave;re stricte est essentiel si vous
343       mettez en oeuvre un mandataire direct (en d&eacute;finissant la directive
344       <directive module="mod_proxy">ProxyRequests</directive> &agrave; "on").
345       Dans le cas contraire, votre serveur pourrait &ecirc;tre utilis&eacute; par
346       n'importe quel client pour acc&eacute;der &agrave; des serveurs quelconques,
347       tout en masquant sa v&eacute;ritable identit&eacute;. Ceci repr&eacute;sente un danger
348       non seulement pour votre r&eacute;seau, mais aussi pour l'Internet au
349       sens large. Dans le cas de la mise en oeuvre d'un mandataire
350       inverse (en utilisant la directive <directive
351       module="mod_proxy">ProxyPass</directive> avec <code>ProxyRequests Off</code>), le contr&ocirc;le
352       d'acc&egrave;s est moins critique car les clients ne peuvent contacter
353       que les serveurs que vous avez sp&eacute;cifi&eacute;s.</p>
354
355       <p><strong>Voir aussi</strong> la variable d'environnement <a
356       href="mod_proxy_http.html#env">Proxy-Chain-Auth</a>.</p>
357
358     </section> <!-- /access -->
359
360     <section id="startup"><title>Ralentissement au d&eacute;marrage</title>
361       <p>Si vous utilisez la directive <directive module="mod_proxy"
362       >ProxyBlock</directive>, les noms d'h&ocirc;tes sont r&eacute;solus en adresses
363       IP puis ces derni&egrave;res mises en cache au cours du d&eacute;marrage
364       &agrave; des fins de tests de comparaisons ult&eacute;rieurs. Ce processus peut
365       durer plusieurs secondes (ou d'avantage) en fonction de la vitesse
366       &agrave; laquelle s'effectue la r&eacute;solution des noms d'h&ocirc;tes.</p>
367     </section> <!-- /startup -->
368
369     <section id="intranet"><title>Mandataire en Intranet</title>
370       <p>Un serveur mandataire Apache httpd situ&eacute; &agrave; l'int&eacute;rieur d'un Intranet
371       doit faire suivre les requ&ecirc;tes destin&eacute;es &agrave; un serveur externe &agrave;
372       travers le pare-feu de l'entreprise (pour ce faire, d&eacute;finissez la
373       directive <directive module="mod_proxy">ProxyRemote</directive> de
374       fa&ccedil;on &agrave; ce qu'elle fasse suivre le <var>protocole</var> concern&eacute;
375       vers le mandataire du pare-feu). Cependant, lorsqu'il doit acc&eacute;der
376       &agrave; des ressources situ&eacute;es dans l'Intranet, il peut se passer du
377       pare-feu pour acc&eacute;der aux serveurs. A cet effet, la directive
378       <directive module="mod_proxy">NoProxy</directive> permet de
379       sp&eacute;cifier quels h&ocirc;tes appartiennent &agrave; l'Intranet et peuvent donc
380       &ecirc;tre acc&eacute;d&eacute;s directement.</p>
381
382       <p>Les utilisateurs d'un Intranet ont tendance &agrave; oublier le nom du
383       domaine local dans leurs requ&ecirc;tes WWW, et demandent par exemple
384       "http://un-serveur/" au lieu de
385       <code>http://un-serveur.example.com/</code>. Certains serveurs
386       mandataires commerciaux acceptent ce genre de requ&ecirc;te et les
387       traitent simplement en utilisant un nom de domaine local
388       implicite. Lorsque la directive <directive
389       module="mod_proxy">ProxyDomain</directive> est utilis&eacute;e et si le
390       serveur est <a href="#proxyrequests">configur&eacute; comme
391       mandataire</a>, Apache httpd peut renvoyer une r&eacute;ponse de redirection et
392       ainsi fournir au client l'adresse de serveur correcte,
393       enti&egrave;rement qualifi&eacute;e. C'est la m&eacute;thode &agrave; privil&eacute;gier car le
394       fichier des marque-pages de l'utilisateur contiendra alors des
395       noms de serveurs enti&egrave;rement qualifi&eacute;s.</p>
396     </section> <!-- /intranet -->
397
398     <section id="envsettings"><title>Ajustements relatifs au
399     protocole</title>
400       <p>Pour les cas o&ugrave; <module>mod_proxy</module> envoie des requ&ecirc;tes
401       vers un serveur qui n'impl&eacute;mente pas correctement les connexions
402       persistantes ou le protocole HTTP/1.1, il existe deux variables
403       d'environnement qui permettent de forcer les requ&ecirc;tes &agrave; utiliser
404       le protocole HTTP/1.0 avec connexions non persistantes. Elles
405       peuvent &ecirc;tre d&eacute;finies via la directive <directive
406       module="mod_env">SetEnv</directive>.</p>
407
408       <p>Il s'agit des variables <code>force-proxy-request-1.0</code> et
409       <code>proxy-nokeepalive</code>.</p>
410
411       <highlight language="config">
412 &lt;Location /buggyappserver/&gt;
413   ProxyPass http://buggyappserver:7001/foo/
414   SetEnv force-proxy-request-1.0 1
415   SetEnv proxy-nokeepalive 1
416 &lt;/Location&gt;
417         </highlight>
418
419     </section> <!-- /envsettings -->
420
421     <section id="request-bodies"><title>Corps de requ&ecirc;tes</title>
422
423     <p>Certaines m&eacute;thodes de requ&ecirc;tes comme POST comportent un corps de
424     requ&ecirc;te. Le protocole HTTP stipule que les requ&ecirc;tes qui comportent
425     un corps doivent soit utiliser un codage de transmission
426     fractionn&eacute;e (chunked transfer encoding), soit envoyer un en-t&ecirc;te de requ&ecirc;te
427     <code>Content-Length</code>. Lorsqu'il fait suivre ce genre de
428     requ&ecirc;te vers le serveur demand&eacute;, <module>mod_proxy_http</module>
429     s'efforce toujours d'envoyer l'en-t&ecirc;te <code>Content-Length</code>.
430     Par contre, si la taille du corps est importante, et si la requ&ecirc;te
431     originale utilise un codage &agrave; fractionnement, ce dernier peut aussi
432     &ecirc;tre utilis&eacute; dans la requ&ecirc;te montante. Ce comportement peut &ecirc;tre
433     contr&ocirc;l&eacute; &agrave; l'aide de <a href="../env.html">variables
434     d'environnement</a>. Ainsi, si elle est d&eacute;finie, la variable
435     <code>proxy-sendcl</code> assure une compatibilit&eacute; maximale avec les
436     serveurs demand&eacute;s en imposant l'envoi de l'en-t&ecirc;te
437     <code>Content-Length</code>, alors que
438     <code>proxy-sendchunked</code> diminue la consommation de ressources
439     en imposant l'utilisation d'un codage &agrave; fractionnement.</p>
440
441     <p>Dans certaines circonstances, le serveur doit mettre en file
442     d'attente sur disque les corps de requ&ecirc;tes afin de satisfaire le
443     traitement demand&eacute; des corps de requ&ecirc;tes. Par exemple, cette mise en
444     file d'attente se produira si le corps original a &eacute;t&eacute; envoy&eacute; selon un
445     codage morcel&eacute; (et poss&egrave;de une taille importante), alors que
446     l'administrateur a demand&eacute; que les requ&ecirc;tes du serveur
447     d'arri&egrave;re-plan soient envoy&eacute;es avec l'en-t&ecirc;te Content-Length ou en
448     HTTP/1.0. Cette mise en file d'attente se produira aussi si le corps
449     de la requ&ecirc;te contient d&eacute;j&agrave; un en-t&ecirc;te Content-Length, alors que le
450     serveur est configur&eacute; pour filtrer les corps des requ&ecirc;tes entrantes.</p>
451
452     <p>La directive <directive
453     module="core">LimitRequestBody</directive> ne s'applique qu'aux
454     corps de requ&ecirc;tes que le serveur met en file d'attente sur disque.</p>
455
456     </section> <!-- /request-bodies -->
457
458     <section id="x-headers"><title>En-t&ecirc;tes de requ&ecirc;te du mandataire
459     inverse</title>
460
461     <p>Lorsqu'il est configur&eacute; en mode mandataire inverse (en utilisant
462     par exemple la directive <directive
463     module="mod_proxy">ProxyPass</directive>),
464     <module>mod_proxy_http</module> ajoute plusieurs en-t&ecirc;tes de requ&ecirc;te
465     afin de transmettre des informations au serveur demand&eacute;. Ces
466     en-t&ecirc;tes sont les suivants :</p>
467
468     <dl>
469       <dt><code>X-Forwarded-For</code></dt>
470       <dd>L'adresse IP du client.</dd>
471       <dt><code>X-Forwarded-Host</code></dt>
472       <dd>L'h&ocirc;te d'origine demand&eacute; par le client dans l'en-t&ecirc;te de
473       requ&ecirc;te HTTP <code>Host</code>.</dd>
474       <dt><code>X-Forwarded-Server</code></dt>
475       <dd>Le nom d'h&ocirc;te du serveur mandataire.</dd>
476     </dl>
477
478     <p>Ces en-t&ecirc;tes doivent &ecirc;tre utilis&eacute;s avec pr&eacute;cautions sur le
479     serveur demand&eacute;, car ils contiendront plus d'une valeur (s&eacute;par&eacute;es
480     par des virgules) si la requ&ecirc;te originale contenait d&eacute;j&agrave; un de ces
481     en-t&ecirc;tes. Par exemple, vous pouvez utiliser
482     <code>%{X-Forwarded-For}i</code> dans la cha&icirc;ne de format du journal
483     du serveur demand&eacute; pour enregistrer les adresses IP des clients
484     originaux, mais il est possible que vous obteniez plusieurs adresses
485     si la requ&ecirc;te passe &agrave; travers plusieurs mandataires.</p>
486
487     <p>Voir aussi les directives <directive
488     module="mod_proxy">ProxyPreserveHost</directive> et <directive
489     module="mod_proxy">ProxyVia</directive> directives, qui permettent
490     de contr&ocirc;ler d'autres en-t&ecirc;tes de requ&ecirc;te.</p>
491
492    </section> <!--/x-headers -->
493
494
495 <directivesynopsis type="section">
496 <name>Proxy</name>
497 <description>Conteneur de directives s'appliquant &agrave; des ressources
498 mandat&eacute;es</description>
499 <syntax>&lt;Proxy <var>url-avec-jokers</var>&gt; ...&lt;/Proxy&gt;</syntax>
500 <contextlist><context>server config</context><context>virtual host</context>
501 </contextlist>
502
503 <usage>
504     <p>Les directives situ&eacute;es dans une section <directive
505     type="section">Proxy</directive> ne s'appliquent qu'au contenu
506     mandat&eacute; concern&eacute;. Les jokers de style shell sont autoris&eacute;s.</p>
507
508     <p>Par exemple, les lignes suivantes n'autoriseront &agrave; acc&eacute;der &agrave; un
509     contenu via votre serveur mandataire que les h&ocirc;tes appartenant &agrave;
510     <code>votre-reseau.example.com</code> :</p>
511
512     <highlight language="config">
513 &lt;Proxy *&gt;
514   Require host votre-reseau.example.com
515 &lt;/Proxy&gt;
516     </highlight>
517
518     <p>Dans l'exemple suivant, tous les fichiers du r&eacute;pertoire
519     <code>foo</code> de <code>example.com</code> seront trait&eacute;s par le
520     filtre <code>INCLUDES</code> lorsqu'ils seront envoy&eacute;s par
521     l'interm&eacute;diaire du serveur mandataire :</p>
522
523     <highlight language="config">    
524 &lt;Proxy http://example.com/foo/*&gt;
525   SetOutputFilter INCLUDES
526 &lt;/Proxy&gt;
527     </highlight>
528
529     <note><title>Diff&eacute;rences avec la section de configuration Location</title>
530       <p>Une URL d'arri&egrave;re-plan sera concern&eacute;e par le conteneur Proxy si
531       elle commence par la <var>url-avec-jokers</var>, m&ecirc;me si le
532       dernier segment de chemin de la directive ne correspond qu'&agrave; un
533       pr&eacute;fixe de segment dee chemin de l'URL d'arri&egrave;re-plan. Par exemple, &lt;Proxy
534       http://example.com/foo&gt; correspondra entre autres aux URLs
535       http://example.com/foo, http://example.com/foo/bar, et
536       http://example.com/foobar. La correspondance de l'URL finale
537       diff&egrave;re du comportement de la section <directive type="section"
538       module="core">Location</directive> qui, pour le cas de cette note,
539       traitera le segment de chemin final comme s'il se terminait par un
540       slash.</p>
541       <p>Pour un contr&ocirc;le plus fin de la correspondance des URL, voir la
542       directive <directive type="section">ProxyMatch</directive>.</p>
543     </note>
544
545 </usage>
546 <seealso><directive type="section" module="mod_proxy">ProxyMatch</directive></seealso>
547 </directivesynopsis>
548
549 <directivesynopsis>
550 <name>ProxyBadHeader</name>
551 <description>D&eacute;termine la mani&egrave;re de traiter les lignes d'en-t&ecirc;te
552 incorrectes d'une r&eacute;ponse</description>
553 <syntax>ProxyBadHeader IsError|Ignore|StartBody</syntax>
554 <default>ProxyBadHeader IsError</default>
555 <contextlist><context>server config</context><context>virtual host</context>
556 </contextlist>
557
558 <usage>
559     <p>La directive <directive>ProxyBadHeader</directive> permet de
560     d&eacute;terminer le comportement de <module>mod_proxy</module> lorsqu'il
561     re&ccedil;oit des lignes d'en-t&ecirc;te de r&eacute;ponse dont la syntaxe n'est pas valide (c'est
562     &agrave; dire ne contenant pas de caract&egrave;re ':') en provenance du serveur
563     original. Les arguments disponibles sont :</p>
564
565     <dl>
566     <dt><code>IsError</code></dt>
567     <dd>Annule la requ&ecirc;te et renvoie une r&eacute;ponse de code 502 (mauvaise
568     passerelle). C'est le comportement par d&eacute;faut.</dd>
569
570     <dt><code>Ignore</code></dt>
571     <dd>Traite les lignes d'en-t&ecirc;te incorrectes comme si elles n'avaient
572     pas &eacute;t&eacute; envoy&eacute;es.</dd>
573
574     <dt><code>StartBody</code></dt>
575     <dd>A la r&eacute;ception de la premi&egrave;re ligne d'en-t&ecirc;te incorrecte, les
576     autres en-t&ecirc;tes sont lus et ce qui reste est trait&eacute; en tant que
577     corps. Ceci facilite la prise en compte des serveurs d'arri&egrave;re-plan
578     bogu&eacute;s qui oublient d'ins&eacute;rer une ligne vide entre les
579     en-t&ecirc;tes et le corps.</dd>
580     </dl>
581 </usage>
582 </directivesynopsis>
583
584 <directivesynopsis type="section">
585 <name>ProxyMatch</name>
586 <description>Conteneur de directives s'appliquant &agrave; des ressources
587 mandat&eacute;es correspondant &agrave; une expression rationnelle</description>
588 <syntax>&lt;ProxyMatch <var>regex</var>&gt; ...&lt;/ProxyMatch&gt;</syntax>
589 <contextlist><context>server config</context><context>virtual host</context>
590 </contextlist>
591
592 <usage>
593     <p>La directive <directive type="section">ProxyMatch</directive> est
594     identique &agrave; la directive <directive module="mod_proxy"
595     type="section">Proxy</directive>, &agrave; l'exception qu'elle d&eacute;finit
596     les URLs auxquelles elle s'applique en utilisant une <glossary
597     ref="regex">expression rationnelle</glossary>.</p>
598
599     <p>A partir de la version 2.5.0, les groupes nomm&eacute;s et les
600     r&eacute;f&eacute;rences arri&egrave;res sont extraits et enregistr&eacute;s dans
601     l'environnement avec leur nom en majuscules et pr&eacute;fix&eacute; par "MATCH_". Ceci permet
602     de r&eacute;f&eacute;rencer des URLs dans des <a href="expr.html">expressions</a>
603     ou au sein de modules comme <module>mod_rewrite</module>. Pour
604     &eacute;viter toute confusion, les r&eacute;f&eacute;rences arri&egrave;res num&eacute;rot&eacute;es (non
605     nomm&eacute;es) sont ignor&eacute;es. Vous devez utiliser &agrave; la place des groupes
606     nomm&eacute;s.</p>
607
608 <highlight language="config">
609 &lt;ProxyMatch ^http://(?&lt;sitename&gt;[^/]+)&gt;
610     require ldap-group cn=%{env:MATCH_SITENAME},ou=combined,o=Example
611 &lt;/ProxyMatch&gt;
612 </highlight>
613 </usage>
614 <seealso><directive type="section" module="mod_proxy">Proxy</directive></seealso>
615 </directivesynopsis>
616
617 <directivesynopsis>
618 <name>ProxyPreserveHost</name>
619 <description>Utilise l'en-t&ecirc;te de requ&ecirc;te entrante Host pour la requ&ecirc;te
620 du mandataire</description>
621 <syntax>ProxyPreserveHost On|Off</syntax>
622 <default>ProxyPreserveHost Off</default>
623 <contextlist><context>server config</context><context>virtual host</context>
624 <context>directory</context>
625 </contextlist>
626 <compatibility>Utilisable
627 dans un contexte de r&eacute;pertoire depuis la version 2.3.3.</compatibility>
628
629 <usage>
630     <p>Lorsqu'elle est activ&eacute;e, cette directive va transmettre l'en-t&ecirc;te
631     Host: de la requ&ecirc;te entrante vers le serveur mandat&eacute;, au lieu du nom
632     d'h&ocirc;te sp&eacute;cifi&eacute; par la directive <directive>ProxyPass</directive>.</p>
633
634     <p>Cette directive est habituellement d&eacute;finie &agrave; <code>Off</code>.
635     Elle est principalement utile dans les configurations particuli&egrave;res
636     comme l'h&eacute;bergement virtuel mandat&eacute; en masse &agrave; base de nom, o&ugrave;
637     l'en-t&ecirc;te Host d'origine doit &ecirc;tre &eacute;valu&eacute; par le serveur
638     d'arri&egrave;re-plan.</p>
639 </usage>
640 </directivesynopsis>
641
642 <directivesynopsis>
643 <name>ProxyRequests</name>
644 <description>Active la fonctionnalit&eacute; (standard) de mandataire
645 direct</description>
646 <syntax>ProxyRequests On|Off</syntax>
647 <default>ProxyRequests Off</default>
648 <contextlist><context>server config</context><context>virtual host</context>
649 </contextlist>
650
651 <usage>
652     <p>Cette directive permet d'activer/d&eacute;sactiver la fonctionnalit&eacute; de
653     serveur mandataire direct d'Apache httpd. D&eacute;finir ProxyRequests &agrave;
654     <code>Off</code> n'interdit pas l'utilisation de la directive
655     <directive module="mod_proxy">ProxyPass</directive>.</p>
656
657     <p>Pour une configuration typique de mandataire inverse ou
658     passerelle, cette directive doit &ecirc;tre d&eacute;finie &agrave;
659     <code>Off</code>.</p>
660
661     <p>Afin d'activer la fonctionnalit&eacute; de mandataire pour des sites
662     HTTP et/ou FTP, les modules <module>mod_proxy_http</module> et/ou
663     <module>mod_proxy_ftp</module> doivent &eacute;galement &ecirc;tre charg&eacute;s dans le
664     serveur.</p>
665
666     <p>Pour activer la fonctionnalit&eacute; de mandataire sur les sites chiffr&eacute;s en HTTPS, le module
667     <module>mod_proxy_connect</module> doit &eacute;galement &ecirc;tre charg&eacute; dans le serveur.</p>
668
669     <note type="warning"><title>Avertissement</title>
670       <p>N'activez pas la fonctionnalit&eacute; de mandataire avec la directive
671       <directive module="mod_proxy">ProxyRequests</directive> avant
672       d'avoir <a href="#access">s&eacute;curis&eacute; votre serveur</a>. Les serveurs
673       mandataires ouverts sont dangereux non seulement pour votre
674       r&eacute;seau, mais aussi pour l'Internet au sens large.</p>
675     </note>
676 </usage>
677 <seealso><a href="#forwardreverse">Mandataires/Passerelles directs et
678 inverses</a></seealso>
679 </directivesynopsis>
680
681 <directivesynopsis>
682 <name>ProxyRemote</name>
683 <description>Mandataire distant &agrave; utiliser pour traiter certaines
684 requ&ecirc;tes</description>
685 <syntax>ProxyRemote <var>comparaison</var> <var>serveur-distant</var></syntax>
686 <contextlist><context>server config</context><context>virtual host</context>
687 </contextlist>
688
689 <usage>
690     <p>Cette directive permet de d&eacute;finir des mandataires distants pour
691     ce mandataire. <var>comparaison</var> est soit le nom d'un protocole
692     que supporte le serveur distant, soit une URL partielle pour
693     laquelle le serveur distant devra &ecirc;tre utilis&eacute;, soit <code>*</code>
694     pour indiquer que le serveur distant doit &ecirc;tre utilis&eacute; pour toutes
695     les requ&ecirc;tes. <var>serveur-distant</var> est une URL partielle
696     correspondant au serveur distant. Syntaxe : </p>
697
698     <example>
699       <dfn>serveur-distant</dfn> =
700           <var>protocole</var>://<var>nom-serveur</var>[:<var>port</var>]
701     </example>
702
703     <p><var>protocole</var> est effectivement le protocole &agrave; utiliser
704     pour communiquer avec le serveur distant ; ce module ne supporte que
705     <code>http</code> et <code>https</code>. Lorsqu'on utilise
706     <code>https</code>, les requ&ecirc;tes sont redirig&eacute;es par le mandataire
707     distant en utilisant la m&eacute;thode HTTP CONNECT.</p>
708
709     <example><title>Exemple</title>
710       <highlight language="config">
711 ProxyRemote http://goodguys.example.com/ http://mirrorguys.example.com:8000
712 ProxyRemote * http://cleverproxy.localdomain
713 ProxyRemote ftp http://ftpproxy.mydomain:8080
714     </highlight>
715     </example>
716
717     <p>Dans la derni&egrave;re ligne de l'exemple, le mandataire va faire
718     suivre les requ&ecirc;tes FTP, encapsul&eacute;es dans une autre requ&ecirc;te mandat&eacute;e
719     HTTP, vers un autre mandataire capable de les traiter.</p>
720
721     <p>Cette directive supporte aussi les configurations de mandataire
722     inverse - un serveur web d'arri&egrave;re-plan peut &ecirc;tre int&eacute;gr&eacute; dans
723     l'espace d'URL d'un serveur virtuel, m&ecirc;me si ce serveur est cach&eacute;
724     par un autre mandataire direct.</p>
725 </usage>
726 </directivesynopsis>
727
728 <directivesynopsis>
729 <name>ProxyRemoteMatch</name>
730 <description>Le mandataire distant &agrave; utiliser pour traiter les requ&ecirc;tes
731 correspondant &agrave; une expression rationnelle</description>
732 <syntax>ProxyRemoteMatch <var>regex</var> <var>serveur-distant</var></syntax>
733 <contextlist><context>server config</context><context>virtual host</context>
734 </contextlist>
735
736 <usage>
737     <p>La directive <directive>ProxyRemoteMatch</directive> est
738     identique &agrave; la directive <directive
739     module="mod_proxy">ProxyRemote</directive>, &agrave; l'exception du
740     premier argument qui est une <glossary ref="regex">expression
741     rationnelle</glossary> &agrave; mettre en correspondance avec l'URL de la
742     requ&ecirc;te.</p>
743 </usage>
744 </directivesynopsis>
745
746 <directivesynopsis>
747 <name>BalancerGrowth</name>
748 <description>Nombre de membres suppl&eacute;mentaires pouvant &ecirc;tre ajout&eacute;s
749 apr&egrave;s la configuration initiale</description>
750     <syntax>BalancerGrowth <var>#</var></syntax>
751     <default>BalancerGrowth 5</default>
752     <contextlist><context>server config</context><context>virtual host</context></contextlist>
753 <compatibility>BalancerGrowth est disponible depuis la version 2.3.13 du
754 serveur HTTP Apache</compatibility>
755 <usage>
756     <p>Cette directive permet de d&eacute;finir le nombre de membres pouvant
757     &ecirc;tre ajout&eacute;s au groupe de r&eacute;partition de charge pr&eacute;configur&eacute; d'un
758     serveur virtuel. Elle n'est active que si le groupe a &eacute;t&eacute;
759     pr&eacute;configur&eacute; avec un membre au minimum.</p>
760 </usage>
761 </directivesynopsis>
762
763 <directivesynopsis>
764 <name>BalancerPersist</name>
765     <description>Tente de conserver les changements effectu&eacute;s par le
766     gestionnaire de r&eacute;partition de charge apr&egrave;s un red&eacute;marrage du
767     serveur.</description>
768     <syntax>BalancerPersist On|Off</syntax>
769     <default>BalancerPersist Off</default>
770     <contextlist><context>server config</context><context>virtual host</context></contextlist>
771     <compatibility>BalancerPersist n'est disponible qu'&agrave; partir de la
772     version 2.5.0 du serveur HTTP Apache.</compatibility>
773     <usage>
774         <p>Cette directive permet de conserver le contenu de l'espace
775         m&eacute;moire partag&eacute; associ&eacute; aux r&eacute;partiteurs de charge et &agrave; leurs
776         membres apr&egrave;s un red&eacute;marrage du serveur. Ces modifications
777         locales ne sont ainsi pas perdues lors des transitions d'&eacute;tat
778         dues &agrave; un red&eacute;marrage.</p>
779     </usage>
780 </directivesynopsis>
781
782 <directivesynopsis>
783 <name>ProxyPassInherit</name>
784     <description>H&eacute;ritage des directives ProxyPass d&eacute;finies au niveau du
785 serveur principal</description>
786     <syntax>ProxyPassInherit On|Off</syntax>
787     <default>ProxyPassInherit On</default>
788     <contextlist><context>server config</context><context>virtual host</context></contextlist>
789     <compatibility>Disponible &agrave; partir de la version 2.5.0 du serveur
790 HTTP Apache.</compatibility>
791     <usage>
792         <p>Cette directive permet &agrave; un serveur virtuel d'h&eacute;riter des
793         directives <directive module="mod_proxy">ProxyPass</directive> d&eacute;finies
794         au niveau du serveur principal. Si vous utilisez la fonctionnalit&eacute; de
795         modifications dynamiques du Balancer Manager, cette directive peut
796         causer des probl&egrave;mes et des comportements inattendus et doit donc
797         &ecirc;tre d&eacute;sactiv&eacute;e.</p>
798         <p>Les valeurs d&eacute;finies au niveau du serveur principal
799         constituent les valeurs par d&eacute;faut pour tous les serveurs virtuels.</p>
800         <p>La d&eacute;sactivation de ProxyPassInherit d&eacute;sactive aussi la
801         directive <directive module="mod_proxy">BalancerInherit</directive>.</p>
802     </usage>
803 </directivesynopsis>
804
805 <directivesynopsis>
806     <name>BalancerInherit</name>
807     <description>H&eacute;ritage des membres du groupes de r&eacute;partition de
808     charge du mandataire d&eacute;finis au niveau du serveur principal</description>
809     <syntax>BalancerInherit On|Off</syntax>
810     <default>BalancerInherit On</default>
811     <contextlist><context>server config</context><context>virtual host</context></contextlist>
812     <compatibility>Disponible &agrave; partir de la version 2.4.4 du serveur
813     HTTP Apache.</compatibility>
814     <usage>
815         <p>Cette directive permet d'attribuer au serveur virtuel courant
816         l'h&eacute;ritage des membres de groupes de r&eacute;partition de charge
817         d&eacute;finis au niveau du serveur
818         principal. Elle ne doit pas &ecirc;tre activ&eacute;e si vous
819         utilisez la fonctionnalit&eacute; de modifications dynamiques du
820         gestionnaire de r&eacute;partition de charge (Balancer Manager) pour
821         &eacute;viter des probl&egrave;mes et des comportements inattendus.</p>
822         <p>Les d&eacute;finitions au niveau du serveur principal constituent
823         les d&eacute;finitions par d&eacute;faut au niveau des serveurs virtuels.</p>
824         <p>La d&eacute;sactivation de ProxyPassInherit d&eacute;sactive aussi la
825         directive <directive module="mod_proxy">BalancerInherit</directive>.</p>
826     </usage>
827 </directivesynopsis>
828
829 <directivesynopsis>
830 <name>BalancerMember</name>
831 <description>Ajoute un membre &agrave; un groupe de r&eacute;partition de
832 charge</description>
833 <syntax>BalancerMember [<var>balancerurl</var>] <var>url</var> [<var
834   >cl&eacute;=valeur [cl&eacute;=valeur ...]]</var></syntax>
835 <contextlist><context>directory</context>
836 </contextlist>
837 <usage>
838     <p>Cette directive permet d'ajouter un membre &agrave; un groupe de
839     r&eacute;partition de charge. Elle peut se trouver dans un conteneur
840     <code>&lt;Proxy <var>balancer://</var>...&gt;</code>, et accepte
841     tous les param&egrave;tres de paires cl&eacute;/valeur que supporte la directive
842     <directive module="mod_proxy">ProxyPass</directive>.</p>
843     <p>La directive <directive
844     module="mod_proxy">BalancerMember</directive> accepte un param&egrave;tre
845     suppl&eacute;mentaire : <var>loadfactor</var>. Il s'agit du facteur de
846     charge du membre - un nombre entre 1 (valeur par d&eacute;faut) et 100, qui
847     d&eacute;finit la charge &agrave; appliquer au membre en question.</p>
848     <p>L'argument balancerurl n'est requis que s'il ne se trouve pas
849     d&egrave;j&agrave; dans la directive de conteneur <code>&lt;Proxy
850     <var>balancer://</var>...&gt;</code>. Il correspond &agrave; l'URL d'un
851     r&eacute;partiteur de charge d&eacute;fini par une directive <directive
852     module="mod_proxy">ProxyPass</directive>.</p>
853     <p>La partie chemin de l'URL du membre du groupe de r&eacute;partition de
854     charge dans toute directive de conteneur <code>&lt;Proxy
855     <var>balancer://</var>...&gt;</code> est ignor&eacute;e.</p>
856     <p>Les slashes de fin doivent normalement &ecirc;tre supprim&eacute;s de l'URL
857     d'un <code>BalancerMember</code>.</p>
858 </usage>
859 </directivesynopsis>
860
861 <directivesynopsis>
862 <name>ProxySet</name>
863 <description>D&eacute;finit diff&eacute;rents param&egrave;tres relatifs &agrave; la r&eacute;partition de
864 charge des mandataires et aux membres des groupes de r&eacute;partition de
865 charge</description>
866 <syntax>ProxySet <var>url</var> <var>cl&eacute;=valeur [cl&eacute;=valeur ...]</var></syntax>
867 <contextlist><context>directory</context>
868 </contextlist>
869 <usage>
870     <p>Cette directive propose une m&eacute;thode alternative pour d&eacute;finir tout
871     param&egrave;tre relatif aux r&eacute;partiteurs de charge et serveurs cibles de
872     mandataires normalement d&eacute;finis via la directive <directive
873     module="mod_proxy">ProxyPass</directive>. Si elle se trouve dans un
874     conteneur <code>&lt;Proxy <var>url de r&eacute;partiteur|url de
875     serveur cible</var>&gt;</code>, l'argument <var>url</var> n'est pas
876     n&eacute;cessaire. Comme effet de bord, le r&eacute;partiteur ou serveur cible respectif
877     est cr&eacute;&eacute;. Ceci peut s'av&eacute;rer utile pour la mise en oeuvre d'un
878     mandataire inverse via une directive <directive
879     module="mod_rewrite">RewriteRule</directive> au lieu de <directive
880     module="mod_proxy">ProxyPass</directive>.</p>
881
882     <example>
883       <highlight language="config">
884 &lt;Proxy balancer://hotcluster&gt;
885     BalancerMember http://www2.example.com:8080 loadfactor=1
886     BalancerMember http://www3.example.com:8080 loadfactor=2
887     ProxySet lbmethod=bytraffic
888 &lt;/Proxy&gt;
889       </highlight>
890     </example>
891
892     <highlight language="config">
893 &lt;Proxy http://backend&gt;
894     ProxySet keepalive=On
895 &lt;/Proxy&gt;
896     </highlight>
897
898     <highlight language="config">
899         ProxySet balancer://foo lbmethod=bytraffic timeout=15
900     </highlight>
901
902     <highlight language="config">
903         ProxySet ajp://backend:7001 timeout=15
904     </highlight>
905
906    <note type="warning"><title>Avertissement</title>
907       <p>Gardez &agrave; l'esprit qu'une m&ecirc;me cl&eacute; de param&egrave;tre peut avoir
908       diff&eacute;rentes significations selon qu'elle s'applique &agrave; un
909       r&eacute;partiteur ou &agrave; un serveur cible, et ceci est illustr&eacute; par les deux
910       exemples pr&eacute;c&eacute;dents o&ugrave; il est question d'un timeout.</p>
911    </note>
912
913 </usage>
914 </directivesynopsis>
915
916 <directivesynopsis>
917 <name>ProxyPass</name>
918 <description>R&eacute;f&eacute;rencer des serveurs distants depuis
919 l'espace d'URLs du serveur local</description>
920 <syntax>ProxyPass [<var>chemin</var>] !|<var>url</var> [<var>cl&eacute;=valeur</var>
921   <var>[cl&eacute;=valeur</var> ...]] [nocanon] [interpolate] [noquery]</syntax>
922 <contextlist><context>server config</context><context>virtual host</context>
923 <context>directory</context>
924 </contextlist>
925
926 <usage>
927     <p>Cette directive permet de r&eacute;f&eacute;rencer des serveurs distants depuis
928     l'espace d'URLs du serveur local ; le serveur
929     local n'agit pas en tant que mandataire au sens conventionnel, mais
930     plut&ocirc;t comme miroir du serveur distant. Le serveur local est
931     souvent nomm&eacute; <dfn>mandataire inverse</dfn> ou
932     <dfn>passerelle</dfn>. L'argument <var>chemin</var> est le nom d'un
933     chemin virtuel local ; <var>url</var> est une URL partielle pour le
934     serveur distant et ne doit pas contenir de cha&icirc;ne d'arguments.</p>
935
936     <note><strong>Note : </strong>Cette directive ne peut pas &ecirc;tre
937     utilis&eacute;e dans un contexte de niveau r&eacute;pertoire.</note>
938
939     <note type="warning">En g&eacute;n&eacute;ral, la directive <directive
940     module="mod_proxy">ProxyRequests</directive> doit &ecirc;tre d&eacute;finie &agrave;
941     <strong>off</strong> lorsqu'on utilise la directive
942     <directive>ProxyPass</directive>.</note>
943
944     <p>Le support des sockets de style Unix est fourni ; il suffit pour
945     cela d'utiliser une URL cible pr&eacute;fix&eacute;e par
946     <code>unix:/path/lis.sock|</code>. Par exemple, pour mandater HTTP
947     et cibler l'UDS /home/www/socket, vous devez utiliser
948     <code>unix:/home/www.socket|http://localhost/whatever/</code>. Comme
949     le socket est local, le nom d'h&ocirc;te utilis&eacute; (ici
950     <code>localhost</code>) peut &ecirc;tre sujet &agrave; discussion, mais il est
951     transmis dans l'en-t&ecirc;te Host: de la requ&ecirc;te.</p>
952
953     <note><strong>Note :</strong>Le chemin associ&eacute; &agrave; l'URL
954     <code>unix:</code> tient compte de la directive
955     <directive>DefaultRuntimeDir</directive>.</note>
956
957     <note><strong>Note :</strong>Afin d'&eacute;viter l'&eacute;chappement du
958     caract&egrave;re <code>'|'</code>, la directive
959     <directive>RewriteRule</directive> doit poss&eacute;der l'option
960     <code>[P,NE]</code>.</note>
961     
962     <p>Supposons que le serveur local a pour adresse
963     <code>http://example.com/</code> ; alors la ligne</p>
964
965     <highlight language="config">
966 &lt;Location /mirror/foo/&gt;
967     ProxyPass http://backend.example.com/
968 &lt;/Location&gt;
969     </highlight>
970
971     <p>va convertir en interne toute requ&ecirc;te pour
972     <code>http://example.com/miroir/foo/bar</code> en une requ&ecirc;te
973     mandat&eacute;e pour <code>http://backend.example.com/bar</code>.</p>
974
975     <p>La syntaxe alternative suivante est valide, bien qu'elle puisse
976     induire une d&eacute;gradation des performances lorsqu'elle est
977     pr&eacute;sente en tr&egrave;s grand nombre. Elle poss&egrave;de l'avantage de
978     permettre un contr&ocirc;le dynamique via l'interface <a
979     href="mod_proxy_balancer.html#balancer_manager">Balancer Manager</a> :</p>
980
981     <highlight language="config">
982         ProxyPass /miroir/foo/ http://backend.example.com/
983     </highlight>
984
985     <note type="warning">
986     <p>Si le premier argument se termine par un slash
987     <strong>/</strong>, il doit en &ecirc;tre de m&ecirc;me pour le second argument
988     et vice versa. Dans le cas contraire, il risque de manquer des
989     slashes n&eacute;cessaires dans la requ&ecirc;te r&eacute;sultante vers le serveur
990     d'arri&egrave;re-plan et les r&eacute;sulats ne seront pas ceux attendus.
991     </p>
992     </note>
993
994     <p>Le drapeau <code>!</code> permet de soustraire un sous-r&eacute;pertoire
995     du mandat inverse, comme dans l'exemple suivant :</p>
996
997     <highlight language="config">
998 &lt;Location /mirror/foo/&gt;
999     ProxyPass http://backend.example.com/
1000 &lt;/Location&gt;
1001 &lt;Location /mirror/foo/i&gt;
1002     ProxyPass !
1003 &lt;/Location&gt;
1004     </highlight>
1005
1006     <highlight language="config">
1007 ProxyPass /mirror/foo/i !
1008 ProxyPass /mirror/foo http://backend.example.com
1009     </highlight>
1010
1011     <p>va mandater toutes les requ&ecirc;tes pour <code>/miroir/foo</code>
1012     vers <code>backend.example.com</code>, <em>sauf</em> les requ&ecirc;tes
1013     pour <code>/miroir/foo/i</code>.</p>
1014
1015     <note type="warning"><title>Ordre de classement des directives ProxyPass</title>
1016       <p>Les directives <directive
1017       module="mod_proxy">ProxyPass</directive> et <directive
1018       module="mod_proxy">ProxyPassMatch</directive> sont &eacute;valu&eacute;es dans
1019       l'ordre de leur apparition dans le fichier de configuration. La
1020       premi&egrave;re r&egrave;gle qui correspond s'applique. Vous devez donc en
1021       g&eacute;n&eacute;ral classer les r&egrave;gles <directive
1022       module="mod_proxy">ProxyPass</directive> qui entrent en conflit de
1023       l'URL la plus longue &agrave; la plus courte. Dans le cas contraire, les
1024       r&egrave;gles situ&eacute;es apr&egrave;s une r&egrave;gle dont l'URL correspond au d&eacute;but de
1025       leur propre URL seront ignor&eacute;es. Notez que tout ceci est en
1026       relation avec le partage de workers. Par contre, on ne peut placer
1027       qu'une seule directive <directive
1028       module="mod_proxy">ProxyPass</directive> dans une section
1029       <directive module="core">Location</directive>, et c'est la section
1030       la plus sp&eacute;cifique qui l'emportera.</p>
1031
1032       <p>Pour les m&ecirc;mes raisons, les exclusions doivent se situer
1033       <em>avant</em> les directives <directive>ProxyPass</directive>
1034       g&eacute;n&eacute;rales.</p>
1035
1036     </note> <!-- /ordering_proxypass -->
1037
1038     <p>Depuis la version 2.1 du serveur HTTP Apache, mod_proxy supporte
1039     les groupements de connexions vers un serveur d'arri&egrave;re-plan. Les
1040     connexions cr&eacute;&eacute;es &agrave; la demande peuvent &ecirc;tre enregistr&eacute;es dans un
1041     groupement pour une utilisation ult&eacute;rieure. La taille du groupe
1042     ainsi que d'autres caract&eacute;ristiques peuvent &ecirc;tre d&eacute;finies via la
1043     directive <directive>ProxyPass</directive> au moyen de param&egrave;tres
1044     <code>cl&eacute;=valeur</code> dont la description fait l'objet du tableau
1045     ci-dessous.</p>
1046
1047     <p>Par d&eacute;faut, mod_proxy permet et met en r&eacute;serve le nombre maximum
1048     de connexions pouvant &ecirc;tre utilis&eacute;es simultan&eacute;ment par le processus
1049     enfant concern&eacute; du serveur web. Le param&egrave;tre <code>max</code> permet
1050     de r&eacute;duire cette valeur par d&eacute;faut. Le param&egrave;tre <code>ttl</code>,
1051     quant &agrave; lui, permet de d&eacute;finir une dur&eacute;e de vie optionnelle ; les
1052     connexions qui n'ont pas &eacute;t&eacute; utilis&eacute;es pendant au moins
1053     <code>ttl</code> secondes seront ferm&eacute;es. <code>ttl</code> permet
1054     aussi d'emp&ecirc;cher l'utilisation d'une connexion susceptible d'&ecirc;tre
1055     ferm&eacute;e suite &agrave; une fin de vie de connexion persistante sur le
1056     serveur d'arri&egrave;re-plan.</p>
1057
1058     <p>Le groupement de connexions est maintenu au niveau de chaque
1059     processus enfant du serveur web, et <code>max</code>, ainsi que les
1060     autres param&egrave;tres, ne font
1061     l'objet d'aucune coordination entre les diff&eacute;rents processus
1062     enfants, sauf si un seul processus enfant est autoris&eacute; par la
1063     configuration ou la conception du module multi-processus (MPM).</p>
1064
1065     <example><title>Exemple</title>
1066     <highlight language="config">
1067         ProxyPass /example http://backend.example.com max=20 ttl=120 retry=300
1068         </highlight>
1069     </example>
1070
1071     <table border="2"><tr><th>Param&egrave;tres de BalancerMember</th></tr></table>
1072     <table>
1073     <tr><th>Param&egrave;tre</th>
1074         <th>D&eacute;faut</th>
1075         <th>Description</th></tr>
1076     <tr><td>min</td>
1077         <td>0</td>
1078         <td>Nombre minimum d'entr&eacute;es dans le pool de connexions,
1079         distinct du nombre de connexions effectif. La valeur par d&eacute;faut
1080         ne doit &ecirc;tre modifi&eacute;e que dans des circonstances particuli&egrave;res
1081         o&ugrave; la m&eacute;moire associ&eacute;e aux connexions avec le serveur
1082         d'arri&egrave;re-plan doit &ecirc;tre pr&eacute;allou&eacute;e ou r&eacute;serv&eacute;e dans le tas.</td></tr>
1083     <tr><td>max</td>
1084         <td>1...n</td>
1085         <td>Nombre maximum de connexions autoris&eacute;es vers le serveur
1086         d'arri&egrave;re-plan. La valeur par d&eacute;faut correspond au nombre de
1087         threads par processus pour le MPM (Module Multi Processus)
1088         actif. La valeur sera toujours 1 pour le MPM Prefork, alors
1089         qu'elle d&eacute;pendra de la d&eacute;finition de la directive
1090         <directive>ThreadsPerChild</directive> pour les autres MPMs.</td></tr>
1091     <tr><td>smax</td>
1092         <td>max</td>
1093         <td>Les entr&eacute;es du pool de connexions conserv&eacute;es au del&agrave; de
1094         cette limite sont lib&eacute;r&eacute;es au cours de certaines op&eacute;rations si
1095         elles n'ont pas &eacute;t&eacute; utilis&eacute;es au cours de leur dur&eacute;e de vie,
1096         d&eacute;finie par le param&egrave;tre <code>ttl</code>. Si l'entr&eacute;e du pool
1097         de connexions est associ&eacute;e &agrave; une connexion, cette derni&egrave;re sera
1098         ferm&eacute;e. La valeur par d&eacute;faut ne doit &ecirc;tre modifi&eacute;e que dans des
1099         circonstances particuli&egrave;res o&ugrave; les entr&eacute;es du pool de connexions
1100         et toutes connexions associ&eacute;es qui ont d&eacute;pass&eacute; leur dur&eacute;e de vie
1101         doivent &ecirc;tre lib&eacute;r&eacute;es ou ferm&eacute;es de mani&egrave;re plus autoritaire.</td></tr>
1102     <tr><td>acquire</td>
1103         <td>-</td>
1104         <td>Cette cl&eacute; permet de d&eacute;finir le d&eacute;lai maximum d'attente pour
1105         une connexion libre dans le jeu de connexions, en millisecondes.
1106         S'il n'y a pas de connexion libre dans le jeu, Apache httpd renverra
1107         l'&eacute;tat <code>SERVER_BUSY</code> au client.
1108     </td></tr>
1109     <tr><td>connectiontimeout</td>
1110         <td>timeout</td>
1111         <td>D&eacute;lai d'attente d'une connexion en secondes.
1112         La dur&eacute;e en secondes pendant laquelle Apache httpd va attendre pour
1113         l'&eacute;tablissement d'une connexion vers le serveur d'arri&egrave;re-plan.
1114         Le d&eacute;lai peut &ecirc;tre sp&eacute;cifi&eacute; en millisecondes en ajoutant le
1115         suffixe ms.
1116     </td></tr>
1117     <tr><td>disablereuse</td>
1118         <td>Off</td>
1119         <td>Vous pouvez utiliser cette cl&eacute; pour forcer mod_proxy &agrave;
1120         fermer imm&eacute;diatement une connexion vers le serveur
1121         d'arri&egrave;re-plan apr&egrave;s utilisation, et ainsi d&eacute;sactiver le jeu de
1122         connexions permanentes vers ce serveur. Ceci peut s'av&eacute;rer utile
1123         dans des situations o&ugrave; un pare-feu situ&eacute; entre Apache httpd et le
1124         serveur d'arri&egrave;re-plan (quelque soit le protocole) interrompt
1125         des connexions de mani&egrave;re silencieuse, ou lorsque le serveur
1126         d'arri&egrave;re-plan lui-m&ecirc;me est accessible par rotation de DNS
1127         (round-robin DNS). Pour d&eacute;sactiver la r&eacute;utilisation du jeu de
1128         connexions, d&eacute;finissez cette cl&eacute; &agrave; <code>On</code>.
1129     </td></tr>
1130     <tr><td>flushpackets</td>
1131         <td>off</td>
1132         <td>Permet de d&eacute;finir si le module mandataire doit vider
1133         automatiquement le tampon de sortie apr&egrave;s chaque tron&ccedil;on de
1134         donn&eacute;es. 'off' signifie que le tampon sera vid&eacute; si n&eacute;cessaire,
1135         'on' que le tampon sera vid&eacute; apr&egrave;s chaque envoi d'un
1136         tron&ccedil;on de donn&eacute;es, et 'auto' que le tampon sera vid&eacute; apr&egrave;s un
1137         d&eacute;lai de 'flushwait' millisecondes si aucune entr&eacute;e n'est re&ccedil;ue.
1138         Actuellement, cette cl&eacute; n'est support&eacute;e que par AJP.
1139     </td></tr>
1140     <tr><td>flushwait</td>
1141         <td>10</td>
1142         <td>Le d&eacute;lai d'attente pour une entr&eacute;e additionnelle, en
1143         millisecondes, avant le vidage du tampon en sortie dans le cas
1144         o&ugrave; 'flushpackets' est &agrave; 'auto'.
1145     </td></tr>
1146     <tr><td>iobuffersize</td>
1147         <td>8192</td>
1148         <td>Permet de d&eacute;finir la taille du tampon d'entr&eacute;es/sorties du
1149         bloc-notes interne. Cette cl&eacute; vous permet d'outrepasser la
1150         directive <directive>ProxyIOBufferSize</directive> pour un
1151         serveur cible sp&eacute;cifique. La valeur doit &ecirc;tre au minimum 512 ou d&eacute;finie
1152         &agrave; 0 pour la valeur par d&eacute;faut du syst&egrave;me de 8192.
1153     </td></tr>
1154     <tr><td>keepalive</td>
1155         <td>Off</td>
1156         <td><p>Cette cl&eacute; doit &ecirc;tre utilis&eacute;e lorsque vous avez un pare-feu
1157         entre Apache httpd et le serveur d'arri&egrave;re-plan, et si ce dernier tend
1158         &agrave; interrompre les connexions inactives. Cette cl&eacute; va faire en
1159         sorte que le syst&egrave;me d'exploitation envoie des messages
1160         <code>KEEP_ALIVE</code> sur chacune des connexions inactives et
1161         ainsi &eacute;viter la  fermeture de la connexion par le pare-feu.
1162         Pour conserver les connexions persistantes, definissez cette
1163         propri&eacute;t&eacute; &agrave; <code>On</code>.</p>
1164     <p>La fr&eacute;quence de v&eacute;rification des connexions TCP persistantes
1165     initiale et subs&eacute;quentes d&eacute;pend de la configuration globale de l'OS,
1166     et peut atteindre 2 heures. Pour &ecirc;tre utile, la fr&eacute;quence configur&eacute;e
1167     dans l'OS doit &ecirc;tre inf&eacute;rieure au seuil utilis&eacute; par le pare-feu.</p>
1168
1169     </td></tr>
1170     <tr><td>lbset</td>
1171         <td>0</td>
1172         <td>D&eacute;finit le groupe de r&eacute;partition de charge dont le serveur cible
1173         est membre. Le r&eacute;partiteur de charge va essayer tous les membres
1174         d'un groupe de r&eacute;partition de charge de num&eacute;ro inf&eacute;rieur avant
1175         d'essayer ceux dont le groupe poss&egrave;de un num&eacute;ro sup&eacute;rieur.
1176     </td></tr>
1177     <tr><td>ping</td>
1178         <td>0</td>
1179         <td>Avec la cl&eacute; Ping, le serveur web va "tester" la connexion
1180         vers le serveur d'arri&egrave;re-plan avant de transmettre la requ&ecirc;te.
1181         Pour les valeurs n&eacute;gatives, le test est une simple v&eacute;rification
1182         de socket, alors que pour les valeurs positives, il s'agit d'une
1183         v&eacute;rification plus approfondie d&eacute;pendant du protocole.
1184         Avec AJP, <module>mod_proxy_ajp</module> envoie une requ&ecirc;te
1185         <code>CPING</code> sur la connexion ajp13 (impl&eacute;ment&eacute; sur Tomcat
1186         3.3.2+, 4.1.28+ et 5.0.13+). Avec HTTP,
1187         <module>mod_proxy_http</module> envoie <code>100-Continue</code>
1188         au serveur d'arri&egrave;re-plan (seulement avecHTTP/1.1 - pour les
1189         serveurs d'arri&egrave;re-plan non HTTP/1.1, cette cl&eacute; ne produit
1190         aucun effet). Dans les deux cas, ce param&egrave;tre correspond au
1191         d&eacute;lai en secondes pour l'attente de la r&eacute;ponse. Cette
1192         fonctionnalit&eacute; a &eacute;t&eacute; ajout&eacute;e pour &eacute;viter les probl&egrave;mes avec les
1193         serveurs d'arri&egrave;re-plan bloqu&eacute;s ou surcharg&eacute;s.
1194
1195         Le trafic
1196         r&eacute;seau peut s'en trouver augment&eacute; en fonctionnement normal, ce
1197         qui peut poser probl&egrave;me, mais peut s'en trouver diminu&eacute; dans les
1198         cas o&ugrave; les noeuds de cluster sont arr&ecirc;t&eacute;s ou
1199         surcharg&eacute;s. Le d&eacute;lai peut
1200         aussi &ecirc;tre d&eacute;fini en millisecondes en ajoutant le suffixe
1201         ms.
1202     </td></tr>
1203     <tr><td>receivebuffersize</td>
1204         <td>0</td>
1205         <td>D&eacute;finit la taille du tampon r&eacute;seau explicite (TCP/IP) pour
1206         les connexions mandat&eacute;es. Cette cl&eacute; vous permet d'outrepasser la
1207         directive <directive>ProxyReceiveBufferSize</directive> pour un
1208         serveur cible sp&eacute;cifique. Sa valeur doit &ecirc;tre au minimum 512 ou d&eacute;finie
1209         &agrave; 0 pour la valeur par d&eacute;faut du syst&egrave;me.
1210     </td></tr>
1211     <tr><td>redirect</td>
1212         <td>-</td>
1213         <td>Route pour la redirection du serveur cible. Cette valeur est en
1214         g&eacute;n&eacute;ral d&eacute;finie dynamiquement pour permettre une suppression
1215         s&eacute;curis&eacute;e du noeud du cluster. Si cette cl&eacute; est d&eacute;finie, toutes
1216         les requ&ecirc;tes sans identifiant de session seront redirig&eacute;es vers
1217         le membre de groupe de r&eacute;partition de charge dont la route
1218         correspond &agrave; la valeur de la cl&eacute;.
1219     </td></tr>
1220     <tr><td>retry</td>
1221         <td>60</td>
1222         <td>D&eacute;lai entre deux essais du serveur cible du jeu de connexions en
1223         secondes. Si le serveur cible du jeu de connexions vers le serveur
1224         d'arri&egrave;re-plan est dans un &eacute;tat d'erreur, Apache httpd ne redirigera
1225         pas de requ&ecirc;te vers ce serveur avant l'expiration du d&eacute;lai
1226         sp&eacute;cifi&eacute;. Ceci permet d'arr&ecirc;ter le serveur d'arri&egrave;re-plan pour
1227         maintenance, et de le remettre en ligne plus tard. Une valeur de
1228         0 implique de toujours essayer les serveurs cibles dans un &eacute;tat d'erreur
1229         sans d&eacute;lai.
1230     </td></tr>
1231     <tr><td>route</td>
1232         <td>-</td>
1233         <td>La route du serveur cible lorsqu'il est utilis&eacute; au sein d'un
1234         r&eacute;partiteur de charge. La route est une valeur ajout&eacute;e &agrave;
1235         l'identifiant de session.
1236     </td></tr>
1237     <tr><td>status</td>
1238         <td>-</td>
1239         <td>Valeur constitu&eacute;e d'une simple lettre et d&eacute;finissant l'&eacute;tat
1240         initial de ce serveur cible.
1241          <table>
1242          <tr><td>D: le serveur cible est d&eacute;sactiv&eacute; et n'accepte aucune requ&ecirc;te.</td></tr>
1243          <tr><td>S: le serveur cible est arr&ecirc;t&eacute;.</td></tr>
1244          <tr><td>I: le serveur cible est en mode "erreurs ignor&eacute;es",
1245          et sera toujours consid&eacute;r&eacute; comme disponible.</td></tr>
1246          <tr><td>H: le serveur cible est en mode d'attente et ne sera
1247          utilis&eacute; que si aucun autre serveur n'est disponible.</td></tr>
1248          <tr><td>E: le serveur cible est en erreur.</td></tr>
1249          <tr><td>N: le serveur cible est en mode vidage, n'acceptera que
1250          les sessions persistantes qui lui appartiennent, et refusera
1251          toutes les autres requ&ecirc;tes.</td></tr>
1252         </table>
1253         Une valeur d'&eacute;tat peut &ecirc;tre d&eacute;finie (ce qui
1254         correspond au comportement par d&eacute;faut) en pr&eacute;fixant la valeur
1255         par '+', ou annul&eacute;e en pr&eacute;fixant la valeur par '-'. Ainsi, la
1256         valeur 'S-E' d&eacute;finit l'&eacute;tat de ce serveur cible &agrave; "arr&ecirc;t&eacute;" et supprime
1257         le drapeau "en-erreur".
1258     </td></tr>
1259     <tr><td>timeout</td>
1260         <td><directive module="mod_proxy">ProxyTimeout</directive></td>
1261         <td>D&eacute;lai d'attente de la connexion en secondes. Le nombre de
1262         secondes pendant lesquelles Apache httpd attend l'envoi de
1263         donn&eacute;es vers le serveur d'arri&egrave;re-plan.
1264     </td></tr>
1265     <tr><td>ttl</td>
1266         <td>-</td>
1267         <td>Dur&eacute;e de vie des connexions inactives et des entr&eacute;es du pool
1268         de connexions associ&eacute;es en secondes. Une fois cette
1269         limite atteinte, une connexion ne sera pas r&eacute;utilis&eacute;e ; elle
1270         sera ferm&eacute;e apr&egrave;s un d&eacute;lai variable.
1271     </td></tr>
1272
1273     </table>
1274
1275     <p>Si l'URL de la directive Proxy d&eacute;bute par
1276     <code>balancer://</code> (par exemple:
1277     <code>balancer://cluster</code>, toute information relative au
1278     chemin est ignor&eacute;e), alors un serveur cible virtuel ne communiquant pas
1279     r&eacute;ellement avec le serveur d'arri&egrave;re-plan sera cr&eacute;&eacute;. Celui-ci sera
1280     en fait responsable de la gestion de plusieurs serveurs cibles "r&eacute;els". Dans
1281     ce cas, un jeu de param&egrave;tres particuliers s'applique &agrave; ce serveur cible
1282     virtuel. Voir <module>mod_proxy_balancer</module> pour plus
1283     d'informations &agrave; propos du fonctionnement du r&eacute;partiteur de
1284     charge.
1285     </p>
1286     <table border="2"><tr><th>Param&egrave;tres du r&eacute;partiteur</th></tr></table>
1287     <table>
1288     <tr><th>Param&egrave;tre</th>
1289         <th>D&eacute;faut</th>
1290         <th>Description</th></tr>
1291     <tr><td>lbmethod</td>
1292         <td>byrequests</td>
1293         <td>M&eacute;thode de r&eacute;partition de charge utilis&eacute;e. Permet de
1294         s&eacute;lectionner la m&eacute;thode de planification de la r&eacute;partition de
1295         charge &agrave; utiliser. La valeur est soit <code>byrequests</code>,
1296         pour effectuer un d&eacute;compte de requ&ecirc;tes pond&eacute;r&eacute;es, soit
1297         <code>bytraffic</code>, pour effectuer une r&eacute;partition en
1298         fonction du d&eacute;compte des octets transmis, soit
1299         <code>bybusyness</code>, pour effectuer une r&eacute;partition en
1300         fonction des requ&ecirc;tes en attente. La valeur par d&eacute;faut est
1301         <code>byrequests</code>.
1302     </td></tr>
1303     <tr><td>maxattempts</td>
1304         <td>1 de moins que le nombre de workers, ou 1 avec un seul
1305         worker</td>
1306         <td>Nombre maximum d'&eacute;checs avant abandon.
1307     </td></tr>
1308     <tr><td>nofailover</td>
1309         <td>Off</td>
1310         <td>Si ce param&egrave;tre est d&eacute;fini &agrave; <code>On</code>, la session va
1311         s'interrompre si le serveur cible est dans un &eacute;tat d'erreur ou
1312         d&eacute;sactiv&eacute;. D&eacute;finissez ce param&egrave;tre &agrave; On si le serveur
1313         d'arri&egrave;re-plan ne supporte pas la r&eacute;plication de session.
1314     </td></tr>
1315     <tr><td>stickysession</td>
1316         <td>-</td>
1317         <td>Nom de session persistant du r&eacute;partiteur. La valeur est
1318         g&eacute;n&eacute;ralement du style <code>JSESSIONID</code> ou
1319         <code>PHPSESSIONID</code>, et d&eacute;pend du serveur d'application
1320         d'arri&egrave;re-plan qui supporte les sessions. Si le serveur
1321         d'application d'arri&egrave;re-plan utilise des noms diff&eacute;rents pour
1322         les cookies et les identifiants cod&eacute;s d'URL (comme les
1323         conteneurs de servlet), s&eacute;parez-les par le caract&egrave;re '|'. La
1324         premi&egrave;re partie contient le cookie et la seconde le chemin.
1325     </td></tr>
1326     <tr><td>stickysessionsep</td>
1327         <td>"."</td>
1328         <td>Permet de d&eacute;finir le caract&egrave;re de s&eacute;paration dans le cookie
1329         de session. En effet, certains serveurs d'application d'arri&egrave;re-plan
1330         n'utilisent pas le '.' comme caract&egrave;re de s&eacute;paration. Par
1331         exemple, le serveur Oracle Weblogic utilise le caract&egrave;re '!'.
1332         Cette option permet donc de d&eacute;finir le caract&egrave;re de s&eacute;paration &agrave;
1333         une valeur appropri&eacute;e. Si elle est d&eacute;finie &agrave; 'Off', aucun
1334         caract&egrave;re de s&eacute;paration ne sera utilis&eacute;.
1335     </td></tr>
1336     <tr><td>scolonpathdelim</td>
1337         <td>Off</td>
1338         <td>Si ce param&egrave;tre est d&eacute;fini &agrave; <code>On</code>, le caract&egrave;re
1339         ';' sera utilis&eacute; comme s&eacute;parateur de chemin de session
1340         persistante additionnel. Ceci permet principalement de simuler
1341         le comportement de mod_jk lorsqu'on utilise des chemins du style
1342         <code>JSESSIONID=6736bcf34;foo=aabfa</code>.
1343     </td></tr>
1344     <tr><td>timeout</td>
1345         <td>0</td>
1346         <td>D&eacute;lai du r&eacute;partiteur en secondes. Si ce param&egrave;tre est
1347         d&eacute;fini, sa valeur correspond &agrave; la dur&eacute;e maximale d'attente pour
1348         un serveur cible libre. Le comportement par d&eacute;faut est de ne pas
1349         attendre.
1350     </td></tr>
1351     <tr><td>failonstatus</td>
1352         <td>-</td>
1353         <td>Une liste de codes d'&eacute;tat HTTP s&eacute;par&eacute;s par des virgules. Si
1354         ce param&egrave;tre est pr&eacute;sent, le worker se mettra en erreur si le
1355         serveur d'arri&egrave;re-plan renvoie un des codes d'&eacute;tat sp&eacute;cifi&eacute;s
1356         dans la liste. La r&eacute;cup&eacute;ration du worker s'effectue comme dans
1357         le cas des autres erreurs de worker.
1358     </td></tr>
1359
1360     <tr><td>failontimeout</td>
1361         <td>Off</td>
1362         <td>Si ce param&egrave;tre est d&eacute;fini &agrave; "On", un d&eacute;lai d'attente
1363         d&eacute;pass&eacute; en entr&eacute;e/sortie apr&egrave;s envoi d'une requ&ecirc;te au serveur
1364         d'arri&egrave;re-plan va mettre le processus en &eacute;tat d'erreur. La
1365         sortie de cet &eacute;tat d'erreur se passe de la m&ecirc;me fa&ccedil;on que pour
1366         les autres erreurs.
1367     </td></tr>
1368
1369     <tr><td>nonce</td>
1370         <td>&lt;auto&gt;</td>
1371         <td>Le nombre &agrave; usage unique de protection utilis&eacute; dans la page
1372         de l'application <code>balancer-manager</code>. Par d&eacute;faut, la
1373         protection de la page est assur&eacute;e par un nombre &agrave; usage unique
1374         automatique &agrave; base d'UUID. Si une valeur est pr&eacute;cis&eacute;e, elle sera
1375         utilis&eacute;e comme nombre &agrave; usage unique. La valeur
1376         <code>None</code> d&eacute;sactive la v&eacute;rification du nombre &agrave; usage
1377         unique.
1378     <note><title>Note</title>
1379       <p>En plus du nombre &agrave; usage unique, la page de l'application
1380       <code>balancer-manager</code> peut &ecirc;tre prot&eacute;g&eacute;e par une ACL.</p>
1381     </note>
1382      </td></tr>
1383     <tr><td>growth</td>
1384         <td>0</td>
1385         <td>Nombre de membres suppl&eacute;mentaires que l'on peut ajouter &agrave; ce
1386         r&eacute;partiteur en plus de ceux d&eacute;finis au niveau de la
1387         configuration.
1388     </td></tr>
1389     <tr><td>forcerecovery</td>
1390         <td>On</td>
1391         <td>Force la relance imm&eacute;diate de tous les membres sans tenir
1392         compte de leur param&egrave;tre retry dans le cas o&ugrave; ils sont tous en
1393         &eacute;tat d'erreur. Il peut cependant arriver qu'un membre d&eacute;j&agrave;
1394         surcharg&eacute; entre dans une situation critique si la relance de
1395         tous les membres est forc&eacute;e sans tenir compte du param&egrave;tre retry
1396         de chaque membre. Dans ce cas, d&eacute;finissez ce param&egrave;tre &agrave;
1397         <code>Off</code>.
1398     </td></tr>
1399
1400     </table>
1401     <p>Exemple de configuration d'un r&eacute;partiteur de charge</p>
1402     <highlight language="config">
1403 ProxyPass /special-area http://special.example.com smax=5 max=10
1404 ProxyPass / balancer://mycluster/ stickysession=JSESSIONID|jsessionid nofailover=On
1405 &lt;Proxy balancer://mycluster&gt;
1406     BalancerMember ajp://1.2.3.4:8009
1407     BalancerMember ajp://1.2.3.5:8009 loadfactor=20
1408     # Less powerful server, don't send as many requests there,
1409     BalancerMember ajp://1.2.3.6:8009 loadfactor=5
1410 &lt;/Proxy&gt;
1411     </highlight>
1412
1413     <p>Configuration d'un serveur cible de r&eacute;serve qui ne sera utilis&eacute; que si
1414     aucun autre serveur cible n'est disponible</p>
1415     <highlight language="config">
1416 ProxyPass / balancer://hotcluster/ 
1417 &lt;Proxy balancer://hotcluster&gt;
1418     BalancerMember ajp://1.2.3.4:8009 loadfactor=1
1419     BalancerMember ajp://1.2.3.5:8009 loadfactor=2
1420     # The server below is on hot standby
1421     BalancerMember ajp://1.2.3.6:8009 status=+H
1422     ProxySet lbmethod=bytraffic
1423 &lt;/Proxy&gt;
1424     </highlight>
1425
1426     <p>Normalement, mod_proxy va mettre sous leur forme canonique les
1427     URLs trait&eacute;es par ProxyPass. Mais ceci peut &ecirc;tre incompatible avec
1428     certains serveurs d'arri&egrave;re-plan, et en particulier avec ceux qui
1429     utilisent <var>PATH_INFO</var>. Le mot-cl&eacute; optionnel
1430     <var>nocanon</var> modifie ce comportement et permet de transmettre
1431     le chemin d'URL sous sa forme brute au serveur d'arri&egrave;re-plan. Notez
1432     que ceci peut affecter la s&eacute;curit&eacute; de votre serveur d'arri&egrave;re-plan,
1433     car la protection limit&eacute;e contre les attaques &agrave; base d'URL que
1434     fournit le mandataire est alors supprim&eacute;e.</p>
1435
1436     <p>Par d&eacute;faut, mod_proxy inclut la cha&icirc;ne de param&egrave;tres lors de la
1437     g&eacute;n&eacute;ration de la variable d'environnement
1438     <var>SCRIPT_FILENAME</var>. Le mot-cl&eacute; optionnel <var>noquery</var>
1439     (disponible &agrave; partir de la version 2.4.1) permet d'exclure cette
1440     cha&icirc;ne.</p>
1441
1442     <p>Lorsque la directive ProxyPass est utilis&eacute;e &agrave; l'int&eacute;rieur d'une
1443     section <directive type="section" module="core"
1444     >Location</directive>, le premier argument est omis et le r&eacute;pertoire
1445     local est obtenu &agrave; partir de la section <directive type="section"
1446     module="core">Location</directive>. Il en sera de m&ecirc;me dans une
1447     section <directive type="section"
1448     module="core">LocationMatch</directive> ; cependant, ProxyPass
1449     n'interpr&egrave;te pas les expressions rationnelles, et il sera ici
1450     n&eacute;cessaire d'utiliser la directive
1451     <directive>ProxyPassMatch</directive> &agrave; la place.</p>
1452
1453     <p>Cette directive ne peut pas &ecirc;tre plac&eacute;e dans une section
1454     <directive type="section" module="core">Directory</directive> ou
1455     <directive type="section" module="core">Files</directive>.</p>
1456
1457     <p>Si vous avez besoin d'un configuration de mandataire inverse plus
1458     souple, reportez-vous &agrave; la documentaion de la directive <directive
1459     module="mod_rewrite">RewriteRule</directive> et son drapeau
1460     <code>[P]</code>.</p>
1461
1462     <p>Le mot-cl&eacute; optionnel <var>interpolate</var> (disponible depuis
1463     httpd 2.2.9), en combinaison avec la directive
1464     <directive>ProxyPassInterpolateEnv</directive>, permet &agrave; ProxyPass
1465     d'interpoler les variables d'environnement &agrave; l'aide de la syntaxe
1466     <var>${VARNAME}</var>. Notez que de nombreuses variables
1467     d'environnement standard d&eacute;riv&eacute;es de CGI n'existeront pas lorsque
1468     l'interpolation se produit ; vous devrez alors encore avoir avoir
1469     recours &agrave; <module>mod_rewrite</module> pour des r&egrave;gles
1470     complexes. Notez aussi que l'interpolation n'est pas support&eacute;e dans
1471     la partie protocole d'une URL. La d&eacute;termination dynamique du
1472     protocole peut &ecirc;tre effectu&eacute;e &agrave; l'aide de
1473     <module>mod_rewrite</module> comme dans l'exemple suivant :</p>
1474
1475     <highlight language="config">
1476 RewriteEngine On
1477
1478 RewriteCond %{HTTPS} =off
1479 RewriteRule . - [E=protocol:http]
1480 RewriteCond %{HTTPS} =on
1481 RewriteRule . - [E=protocol:https]
1482
1483 RewriteRule ^/mirror/foo/(.*) %{ENV:protocol}://backend.example.com/$1 [P]
1484 ProxyPassReverse  /mirror/foo/ http://backend.example.com/
1485 ProxyPassReverse  /mirror/foo/ https://backend.example.com/
1486     </highlight>
1487
1488 </usage>
1489 </directivesynopsis>
1490
1491 <directivesynopsis>
1492 <name>ProxyPassMatch</name>
1493 <description>Fait correspondre des serveurs distants dans l'espace d'URL
1494 du serveur local en utilisant des expressions rationnelles</description>
1495 <syntax>ProxyPassMatch [<var>regex</var>] !|<var>url</var>
1496 [<var>cl&eacute;=valeur</var>
1497         <var>[cl&eacute;=valeur</var> ...]]</syntax>
1498 <contextlist><context>server config</context><context>virtual host</context>
1499 <context>directory</context>
1500 </contextlist>
1501
1502 <usage>
1503     <p>Cette directive est identique &agrave; la directive <directive
1504     module="mod_proxy">ProxyPass</directive>, mais fait usage des
1505     expressions rationnelles, au lieu d'une simple comparaison de
1506     pr&eacute;fixes. L'expression rationnelle sp&eacute;cifi&eacute;e est compar&eacute;e &agrave;
1507     l'<var>url</var>, et si elle correspond, le serveur va substituer
1508     toute correspondance entre parenth&egrave;ses dans la cha&icirc;ne donn&eacute;e et
1509     l'utiliser comme nouvelle <var>url</var>.</p>
1510
1511     <note><strong>Note : </strong>Cette directive ne peut pas &ecirc;tre
1512     utilis&eacute;e dans un contexte de niveau r&eacute;pertoire.</note>
1513
1514     <p>Supposons que le serveur local a pour adresse
1515     <code>http://example.com/</code> ; alors</p>
1516
1517     <highlight language="config">
1518       ProxyPassMatch ^(/.*\.gif)$ http://backend.example.com$1
1519     </highlight>
1520
1521     <p>va provoquer la conversion interne de la requ&ecirc;te locale
1522     <code>http://example.com/foo/bar.gif</code> en une requ&ecirc;te mandat&eacute;e
1523     pour <code>http://backend.example.com/foo/bar.gif</code>.</p>
1524
1525     <note><title>Note</title>
1526       <p>L'argument URL doit pouvoir &ecirc;tre interpr&eacute;t&eacute; en tant qu'URL
1527       <em>avant</em> les substitutions d'expressions rationnelles (et
1528       doit aussi l'&ecirc;tre apr&egrave;s). Ceci limite les correspondances que vous
1529       pouvez utiliser. Par exemple, si l'on avait utilis&eacute;</p>
1530       <highlight language="config">
1531         ProxyPassMatch ^(/.*\.gif)$ http://backend.example.com:8000$1
1532       </highlight>
1533       <p>dans l'exemple pr&eacute;c&eacute;dent, nous aurions provoqu&eacute; une erreur de
1534       syntaxe au d&eacute;marrage du serveur. C'est une bogue (PR 46665 dans
1535       ASF bugzilla), et il est possible de la contourner en reformulant
1536       la correspondance :</p>
1537       <highlight language="config">
1538         ProxyPassMatch ^/(.*\.gif)$ http://backend.example.com:8000/$1
1539       </highlight>
1540     </note>
1541
1542     <p>Le drapeau <code>!</code> vous permet de ne pas mandater un
1543     sous-r&eacute;pertoire donn&eacute;.</p>
1544
1545     <p>Dans une section <directive type="section"
1546     module="core">LocationMatch</directive>, le premier argument est
1547     omis et l'expression rationnelle est obtenue &agrave; partir de la directive
1548     <directive type="section" module="core">LocationMatch</directive>.</p>
1549
1550     <p>Si vous avez besoin d'une configuration du mandataire inverse
1551     plus flexible, voyez la directive <directive
1552     module="mod_rewrite">RewriteRule</directive> avec le drapeau
1553     <code>[P]</code>.</p>
1554
1555     <note type="warning">
1556       <title>Avertissement &agrave; propos de la s&eacute;curit&eacute;</title>
1557       <p>Lors de la construction de l'URL cible de la r&egrave;gle, il convient
1558       de prendre en compte l'impact en mati&egrave;re de s&eacute;curit&eacute; qu'aura le
1559       fait de permettre au client d'influencer le jeu d'URLs pour
1560       lesquelles votre serveur agira en tant que mandataire.
1561       Assurez-vous que la partie protocole://nom-serveur de l'URL soit
1562       fixe, ou ne permette pas au client de l'influencer induement.</p>
1563     </note>
1564 </usage>
1565 </directivesynopsis>
1566
1567 <directivesynopsis>
1568 <name>ProxyPassReverse</name>
1569 <description>Ajuste l'URL dans les en-t&ecirc;tes de la r&eacute;ponse HTTP envoy&eacute;e
1570 par un serveur mandat&eacute; en inverse</description>
1571 <syntax>ProxyPassReverse [<var>chemin</var>] <var>url</var>
1572 [<var>interpolate</var>]</syntax>
1573 <contextlist><context>server config</context><context>virtual host</context>
1574 <context>directory</context>
1575 </contextlist>
1576
1577 <usage>
1578     <p>Cette directive permet de faire en sorte qu'Apache httpd ajuste l'URL
1579     dans les en-t&ecirc;tes <code>Location</code>,
1580     <code>Content-Location</code> et <code>URI</code> des r&eacute;ponses de
1581     redirection HTTP. Ceci est essentiel lorsqu'Apache httpd est utilis&eacute; en
1582     tant que mandataire inverse (ou passerelle), afin d'&eacute;viter de
1583     court-circuiter le mandataire inverse suite aux redirections HTTP
1584     sur le serveur d'arri&egrave;re-plan qui restent derri&egrave;re le mandataire
1585     inverse.</p>
1586
1587     <p>Seuls les en-t&ecirc;tes de r&eacute;ponse HTTP sp&eacute;cialement mentionn&eacute;s
1588     ci-dessus seront r&eacute;&eacute;crits. Apache httpd ne r&eacute;&eacute;crira ni les autres en-t&ecirc;tes
1589     de r&eacute;ponse, ni par d&eacute;faut les r&eacute;f&eacute;rences d'URLs dans les pages HTML. Cela
1590     signifie que dans le cas o&ugrave; un contenu mandat&eacute; contient des
1591     r&eacute;f&eacute;rences &agrave; des URLs absolues, elles court-circuiteront le
1592     mandataire. Pour r&eacute;&eacute;crire un contenu HTML afin qu'il corresponde au
1593     mandataire, vous devez charger et activer le module
1594     <module>mod_proxy_html</module>.
1595     </p>
1596
1597     <p><var>chemin</var> est le nom d'un chemin virtuel local.
1598     <var>url</var> est une URL partielle pour le serveur distant - ils
1599     sont utilis&eacute;s de la m&ecirc;me fa&ccedil;on qu'avec la directive <directive
1600     module="mod_proxy">ProxyPass</directive>.</p>
1601
1602     <p>Supposons par exemple que le serveur local a pour adresse
1603     <code>http://example.com/</code> ; alors</p>
1604
1605     <highlight language="config">
1606 ProxyPass         /mirror/foo/ http://backend.example.com/
1607 ProxyPassReverse  /mirror/foo/ http://backend.example.com/
1608 ProxyPassReverseCookieDomain  backend.example.com  public.example.com
1609 ProxyPassReverseCookiePath  /  /mirror/foo/
1610     </highlight>
1611
1612     <p>ne va pas seulement provoquer la conversion interne d'une requ&ecirc;te
1613     locale pour <code>http://example.com/miroir/foo/bar</code> en une
1614     requ&ecirc;te mandat&eacute;e pour <code>http://backend.example.com/bar</code>
1615     (la fonctionnalit&eacute; fournie par <code>ProxyPass</code>). Il va
1616     aussi s'occuper des redirections que le serveur
1617     <code>backend.example.com</code> envoie : lorsque
1618     <code>http://backend.example.com/bar</code> est redirig&eacute; par
1619     celui-ci vers <code>http://backend.example.com/quux</code>, Apache
1620     httpd corrige ceci en <code>http://example.com/miroir/foo/quux</code>
1621     avant de faire suivre la redirection HTTP au client. Notez que le
1622     nom d'h&ocirc;te utilis&eacute; pour construire l'URL est choisi en respectant la
1623     d&eacute;finition de la directive <directive
1624     module="core">UseCanonicalName</directive>.</p>
1625
1626     <p>Notez que la directive <directive>ProxyPassReverse</directive>
1627     peut aussi &ecirc;tre utilis&eacute;e en conjonction avec la fonctionnalit&eacute;
1628     pass-through (<code>RewriteRule ...  [P]</code>) du module
1629     <module>mod_rewrite</module>, car elle ne d&eacute;pend pas d'une directive
1630     <directive module="mod_proxy">ProxyPass</directive>
1631     correspondante.</p>
1632
1633     <p>Le mot-cl&eacute; optionnel <var>interpolate</var> (disponible depuis
1634     httpd 2.2.9), utilis&eacute; en combinaison avec la directive
1635     <directive>ProxyPassInterpolateEnv</directive>, permet
1636     l'interpolation des variables d'environnement sp&eacute;cifi&eacute;es en
1637     utilisant le format <var>${VARNAME}</var>. Notez que l'interpolation
1638     n'est pas support&eacute;e dans la partie protocole d'une URL.
1639     </p>
1640
1641     <p>Lorsque cette directive est utilis&eacute;e dans une section <directive
1642     type="section" module="core">Location</directive>, le premier
1643     argument est omis et le r&eacute;pertoire local est obtenu &agrave; partir de
1644     l'argument de la directive <directive type="section"
1645     module="core">Location</directive>. Il en est de m&ecirc;me &agrave; l'int&eacute;rieur
1646     d'une section <directive type="section"
1647     module="core">LocationMatch</directive>, mais le r&eacute;sultat ne sera
1648     probablement pas celui attendu car ProxyPassReverse va interpr&eacute;ter
1649     l'expression rationnelle litt&eacute;ralement comme un chemin ; si besoin
1650     est dans ce cas, d&eacute;finissez la directive ProxyPassReverse en dehors
1651     de la section, ou dans une section <directive type="section"
1652     module="core">Location</directive> s&eacute;par&eacute;e.</p>
1653
1654     <p>Cette directive ne peut pas &ecirc;tre plac&eacute;e dans une section
1655     <directive type="section" module="core">Directory</directive> ou
1656     <directive type="section" module="core">Files</directive>.</p>
1657 </usage>
1658 </directivesynopsis>
1659
1660 <directivesynopsis>
1661 <name>ProxyPassReverseCookieDomain</name>
1662 <description>Ajuste la cha&icirc;ne correspondant au domaine dans les en-t&ecirc;tes
1663 Set-Cookie en provenance d'un serveur mandat&eacute;</description>
1664 <syntax>ProxyPassReverseCookieDomain <var>domaine-interne</var>
1665 <var>domaine-public</var> [<var>interpolate</var>]</syntax>
1666 <contextlist><context>server config</context><context>virtual host</context>
1667 <context>directory</context>
1668 </contextlist>
1669 <usage>
1670 <p>L'utilisation de cette directive est similaire &agrave; celle de la
1671 directive <directive module="mod_proxy">ProxyPassReverse</directive>,
1672 mais au lieu de r&eacute;&eacute;crire des en-t&ecirc;tes qui contiennent des URLs, elle
1673 r&eacute;&eacute;crit la cha&icirc;ne correspondant au domaine dans les en-t&ecirc;tes
1674 <code>Set-Cookie</code>.</p>
1675 </usage>
1676 </directivesynopsis>
1677
1678
1679 <directivesynopsis>
1680 <name>ProxyPassReverseCookiePath</name>
1681 <description>Ajuste la cha&icirc;ne correspondant au chemin dans les en-t&ecirc;tes
1682 Set-Cookie en provenance d'un serveur mandat&eacute;</description>
1683 <syntax>ProxyPassReverseCookiePath <var>chemin-interne</var>
1684 <var>chemin-public</var> [<var>interpolate</var>]</syntax>
1685 <contextlist><context>server config</context><context>virtual host</context>
1686 <context>directory</context>
1687 </contextlist>
1688 <usage>
1689 <p>
1690 Cette directive s'av&egrave;re utile en conjonction avec la directive
1691 <directive module="mod_proxy">ProxyPassReverse</directive> dans les
1692 situations o&ugrave; les chemins d'URL d'arri&egrave;re-plan correspondent &agrave; des
1693 chemins publics sur le mandataire inverse. Cette directive permet de
1694 r&eacute;&eacute;crire la cha&icirc;ne <code>path</code> dans les en-t&ecirc;tes
1695 <code>Set-Cookie</code>. Si le d&eacute;but du chemin du cookie correspond &agrave;
1696 <var>chemin-interne</var>, le chemin du cookie sera remplac&eacute; par
1697 <var>chemin-public</var>.
1698 </p><p>
1699 Dans l'exemple fourni avec la directive <directive
1700 module="mod_proxy">ProxyPassReverse</directive>, la directive :
1701 </p>
1702     <highlight language="config">
1703       ProxyPassReverseCookiePath  /  /mirror/foo/
1704     </highlight>
1705 <p>
1706 va r&eacute;&eacute;crire un cookie poss&eacute;dant un chemin d'arri&egrave;re-plan <code>/</code>
1707 (ou <code>/example</code> ou en fait tout chemin)
1708 en <code>/mirror/foo/</code>..
1709 </p>
1710 </usage>
1711 </directivesynopsis>
1712
1713 <directivesynopsis>
1714 <name>ProxyBlock</name>
1715 <description>Interdit les requ&ecirc;tes mandat&eacute;es vers certains h&ocirc;tes</description>
1716 <syntax>ProxyBlock *|<var>nom d'h&ocirc;te</var>|<var>nom d'h&ocirc;te partiel</var>
1717 [<var>nom d'h&ocirc;te</var>|<var>nom d'h&ocirc;te partiel</var>]...</syntax>
1718 <contextlist><context>server config</context><context>virtual host</context>
1719 </contextlist>
1720
1721 <usage>
1722     <p>La directive <directive>ProxyBlock</directive> permet d'interdire
1723     l'acc&egrave;s FTP ou HTTP via le mandataire &agrave; certains h&ocirc;tes en fonction
1724     d'une correspondance exacte ou partielle avec un nom d'h&ocirc;te, ou dans
1725     la mesure du possible en fonction d'une comparaison d'adresses IP.</p>
1726
1727     <p>Chaque param&egrave;tre de la directive
1728     <directive>ProxyBlock</directive> accepte comme valeur soit
1729     <code>*</code>, soit une cha&icirc;ne alphanum&eacute;rique. Au d&eacute;marrage, le
1730     module tente de r&eacute;soudre toute cha&icirc;ne alphanum&eacute;rique depuis un nom
1731     DNS vers un jeu d'adresses IP, mais toute erreur de DNS est ignor&eacute;e.</p>
1732
1733     <p>Si un param&egrave;tre a pour valeur "<code>*</code>",
1734     <module>mod_proxy</module> interdira l'acc&egrave;s &agrave; tout site FTP ou
1735     HTTP.</p>
1736
1737     <p>Dans le cas contraire, pour toute requ&ecirc;te vers une ressource FTP
1738     ou HTTP via le mandataire, <module>mod_proxy</module> va comparer le
1739     nom d'h&ocirc;te de l'URI de la requ&ecirc;te avec chaque cha&icirc;ne alphanum&eacute;rique
1740     sp&eacute;cifi&eacute;e. Si une cha&icirc;ne correspond, m&ecirc;me partiellement, l'acc&egrave;s est
1741     refus&eacute;. Si aucune cha&icirc;ne ne correspond, et si un mandataire distant
1742     (forward) est configur&eacute; via la directive
1743     <directive>ProxyRemote</directive> ou
1744     <directive>ProxyRemoteMatch</directive>, l'acc&egrave;s est autoris&eacute;. Si
1745     aucun mandataire distant (forward) n'est configur&eacute;, l'adresse IP
1746     correspondant au nom d'h&ocirc;te de l'URI est compar&eacute;e &agrave; toutes les
1747     adresses IP r&eacute;solues au d&eacute;marrage, et l'acc&egrave;s est refus&eacute; si une
1748     correspondance est trouv&eacute;e.</p>
1749
1750     <p>Notez que les recherches DNS peuvent ralentir le processus de
1751     d&eacute;marrage du serveur.</p>
1752
1753     <example><title>Exemple</title>
1754     <highlight language="config">
1755       ProxyBlock news.example.com auctions.example.com friends.example.com
1756       </highlight>
1757     </example>
1758
1759     <p>Notez qu'<code>example</code> suffirait aussi pour atteindre
1760     ces sites.</p>
1761
1762     <p>Hosts conviendrait aussi s'il &eacute;tait r&eacute;f&eacute;renc&eacute; par adresse IP.</p>
1763
1764     <p>Notez aussi que</p>
1765
1766     <highlight language="config">
1767       ProxyBlock *
1768     </highlight>
1769
1770     <p>bloque les connexions vers tous les sites.</p>
1771 </usage>
1772 </directivesynopsis>
1773
1774 <directivesynopsis>
1775 <name>ProxyReceiveBufferSize</name>
1776 <description>Taille du tampon r&eacute;seau pour les connexions mandat&eacute;es HTTP
1777 et FTP</description>
1778 <syntax>ProxyReceiveBufferSize <var>octets</var></syntax>
1779 <default>ProxyReceiveBufferSize 0</default>
1780 <contextlist><context>server config</context><context>virtual host</context>
1781 </contextlist>
1782
1783 <usage>
1784     <p>La directive <directive>ProxyReceiveBufferSize</directive> permet
1785     de sp&eacute;cifier une taille de tampon r&eacute;seau explicite (TCP/IP) pour les
1786     connexions mandat&eacute;es HTTP et FTP, afin d'am&eacute;liorer le d&eacute;bit de
1787     donn&eacute;es. Elle doit &ecirc;tre sup&eacute;rieure &agrave; <code>512</code> ou d&eacute;finie &agrave;
1788     <code>0</code> pour indiquer que la taille de tampon par d&eacute;faut du
1789     syst&egrave;me doit &ecirc;tre utilis&eacute;e.</p>
1790
1791     <example><title>Exemple</title>
1792     <highlight language="config">
1793       ProxyReceiveBufferSize 2048
1794       </highlight>
1795     </example>
1796 </usage>
1797 </directivesynopsis>
1798
1799 <directivesynopsis>
1800 <name>ProxyIOBufferSize</name>
1801 <description>D&eacute;termine la taille du tampon interne de transfert de
1802 donn&eacute;es</description>
1803 <syntax>ProxyIOBufferSize <var>octets</var></syntax>
1804 <default>ProxyIOBufferSize 8192</default>
1805 <contextlist><context>server config</context><context>virtual host</context>
1806 </contextlist>
1807
1808 <usage>
1809     <p>La directive <directive>ProxyIOBufferSize</directive> permet
1810     d'ajuster la taille du tampon interne utilis&eacute; comme bloc-note pour
1811     les transferts de donn&eacute;es entre entr&eacute;e et sortie. La taille minimale
1812     est de <code>512</code> octets.</p>
1813
1814     <p>Dans la plupart des cas, il n'y a aucune raison de modifier cette
1815     valeur.</p>
1816
1817     <p>Si elle est utilis&eacute;e avec AJP, cette directive permet de d&eacute;finir
1818     la taille maximale du paquet AJP en octets. Si la valeur sp&eacute;cifi&eacute;e
1819     est sup&eacute;rieure &agrave; 65536, elle est corrig&eacute;e et prend la valeur 65536.    
1820     Si vous ne conservez pas
1821     la valeur par d&eacute;faut, vous devez aussi modifier l'attribut
1822     <code>packetSize</code> de votre connecteur AJP du c&ocirc;t&eacute; de Tomcat !
1823     L'attribut <code>packetSize</code> n'est disponible que dans Tomcat
1824     <code>5.5.20+</code> et <code>6.0.2+</code>.</p>
1825     <p>Il n'est normalement pas n&eacute;cessaire de modifier la taille
1826     maximale du paquet. Des probl&egrave;mes ont cependant &eacute;t&eacute; rapport&eacute;s avec
1827     la valeur par d&eacute;faut lors de l'envoi de certificats ou de cha&icirc;nes de
1828     certificats.</p>
1829
1830 </usage>
1831 </directivesynopsis>
1832
1833 <directivesynopsis>
1834 <name>ProxyMaxForwards</name>
1835 <description>Nombre maximum de mandataires &agrave; travers lesquelles une
1836 requ&ecirc;te peut &ecirc;tre redirig&eacute;e</description>
1837 <syntax>ProxyMaxForwards <var>nombre</var></syntax>
1838 <default>ProxyMaxForwards -1</default>
1839 <contextlist><context>server config</context><context>virtual host</context>
1840 </contextlist>
1841
1842 <usage>
1843     <p>La directive <directive>ProxyMaxForwards</directive> permet de
1844     sp&eacute;cifier le nombre maximum de mandataires &agrave; travers lesquels une
1845     requ&ecirc;te peut passer dans le cas o&ugrave; la la requ&ecirc;te ne contient pas
1846     d'en-t&ecirc;te <code>Max-Forwards</code>. Ceci permet de se pr&eacute;munir
1847     contre les boucles infinies de mandataires ou contre les attaques de
1848     type d&eacute;ni de service.</p>
1849
1850     <example><title>Exemple</title>
1851     <highlight language="config">
1852       ProxyMaxForwards 15
1853       </highlight>
1854     </example>
1855
1856     <p>Notez que la d&eacute;finition de la directive
1857     <directive>ProxyMaxForwards</directive> constitue une violation du
1858     protocole HTTP/1.1 (RFC2616), qui interdit &agrave; un mandataire de
1859     d&eacute;finir <code>Max-Forwards</code> si le client ne l'a pas fait
1860     lui-m&ecirc;me. Les versions pr&eacute;c&eacute;dentes d'Apache httpd la d&eacute;finissaient
1861     syst&eacute;matiquement. Une valeur n&eacute;gative de
1862     <directive>ProxyMaxForwards</directive>, y compris la valeur par
1863     d&eacute;faut -1, implique un comportement compatible avec le protocole,
1864     mais vous expose aux bouclages infinis.</p>
1865 </usage>
1866 </directivesynopsis>
1867
1868 <directivesynopsis>
1869 <name>NoProxy</name>
1870 <description>Serveurs, domaines ou r&eacute;seaux auquels on se connectera
1871 directement</description>
1872 <syntax>NoProxy <var>domaine</var> [<var>domaine</var>] ...</syntax>
1873 <contextlist><context>server config</context><context>virtual host</context>
1874 </contextlist>
1875
1876 <usage>
1877     <p>Cette directive n'a d'utilit&eacute; que pour les serveurs mandataires
1878     Apache httpd au sein d'Intranets. La directive
1879     <directive>NoProxy</directive> permet de sp&eacute;cifier une liste de
1880     sous-r&eacute;seaux, d'adresses IP, de serveurs et/ou de domaines s&eacute;par&eacute;s
1881     par des espaces. Une requ&ecirc;te pour un serveur qui correspond &agrave; un ou
1882     plusieurs crit&egrave;res sera toujours servie par ce serveur directement,
1883     sans &ecirc;tre redirig&eacute;e vers le(s) serveur(s) mandataire(s) d&eacute;fini(s) par
1884     la directive <directive
1885     module="mod_proxy">ProxyRemote</directive>.</p>
1886
1887     <example><title>Exemple</title>
1888       <highlight language="config">
1889 ProxyRemote  *  http://firewall.example.com:81
1890 NoProxy         .example.com 192.168.112.0/21
1891     </highlight>
1892     </example>
1893
1894     <p>Le type des arguments <var>serveur</var> de la directive
1895     <directive>NoProxy</directive> appartiennent &agrave; la liste suivante
1896     :</p>
1897
1898     <dl>
1899     <!-- ===================== Domain ======================= -->
1900     <dt><var><a name="domain" id="domain">Domaine</a></var></dt>
1901     <dd>
1902     <p>Un <dfn>domaine</dfn> est ici un nom de domaine DNS partiellement
1903     qualifi&eacute; pr&eacute;c&eacute;d&eacute; d'un point. Il repr&eacute;sente une liste de serveurs qui
1904     appartiennent logiquement au m&ecirc;me domaine ou &agrave; la m&ecirc;me zonz DNS
1905     (en d'autres termes, les nom des serveurs se terminent tous par
1906     <var>domaine</var>).</p>
1907
1908     <example><title>Exemple</title>
1909       .com .example.org.
1910     </example>
1911
1912     <p>Pour faire la distinction entre <var>domaine</var>s et <var><a
1913     href="#hostname">nom d'h&ocirc;te</a></var>s (des points de vue &agrave; la fois
1914     syntaxique et
1915     s&eacute;mantique, un domaine DNS pouvant aussi avoir un enregistrement DNS
1916     de type A !), les <var>domaine</var>s sont toujours sp&eacute;cifi&eacute;s en les
1917     pr&eacute;fixant par un point.</p>
1918
1919     <note><title>Note</title>
1920       <p>Les comparaisons de noms de domaines s'effectuent sans tenir
1921       compte de la casse, et les parties droites des <var>Domaine</var>s
1922       sont toujours cens&eacute;es correspondre &agrave; la racine de l'arborescence
1923       DNS, si bien que les domaines <code>.ExEmple.com</code> et
1924       <code>.example.com.</code> (notez le point &agrave; la fin du nom) sont
1925       consid&eacute;r&eacute;s comme identiques. Comme une comparaison de domaines ne
1926       n&eacute;cessite pas de recherche DNS, elle est beaucoup plus efficace
1927       qu'une comparaison de sous-r&eacute;seaux.</p>
1928     </note></dd>
1929
1930     <!-- ===================== SubNet ======================= -->
1931     <dt><var><a name="subnet" id="subnet">Sous-r&eacute;seau</a></var></dt>
1932     <dd>
1933     <p>Un <dfn>Sous-r&eacute;seau</dfn> est une adresse internet partiellement
1934     qualifi&eacute;e sous forme num&eacute;rique (quatre nombres s&eacute;par&eacute;s par des
1935     points), optionnellement suivie d'un slash et du masque de
1936     sous-r&eacute;seau sp&eacute;cifiant le nombre de bits significatifs dans le
1937     <var>Sous-r&eacute;seau</var>. Il repr&eacute;sente un sous-r&eacute;seau de serveurs qui
1938     peuvent &ecirc;tre atteints depuis la m&ecirc;me interface r&eacute;seau. En l'absence
1939     de masque de sous-r&eacute;seau explicite, il est sous-entendu que les
1940     digits manquants (ou caract&egrave;res 0) de fin sp&eacute;cifient le masque de
1941     sous-r&eacute;seau (Dans ce cas, le masque de sous-r&eacute;seau ne peut &ecirc;tre
1942     qu'un multiple de 8). Voici quelques exemples :</p>
1943
1944     <dl>
1945     <dt><code>192.168</code> ou <code>192.168.0.0</code></dt>
1946     <dd>le sous-r&eacute;seau 192.168.0.0 avec un masque de sous-r&eacute;seau
1947     implicite de 16 bits significatifs (parfois exprim&eacute; sous la forme
1948     <code>255.255.0.0</code>)</dd>
1949     <dt><code>192.168.112.0/21</code></dt>
1950     <dd>le sous-r&eacute;seau <code>192.168.112.0/21</code> avec un masque de
1951     sous-r&eacute;seau implicite de 21 bits significatifs (parfois exprim&eacute;
1952     sous la forme<code>255.255.248.0</code>)</dd>
1953     </dl>
1954
1955     <p>Comme cas extr&ecirc;mes, un <em>Sous-r&eacute;seau</em> avec un masque de
1956     sous-r&eacute;seau de 32 bits significatifs est &eacute;quivalent &agrave; une <var><a
1957     href="#ipaddr">adresse IP</a></var>, alors qu'un <em>Sous-r&eacute;seau</em> avec un masque de
1958     sous-r&eacute;seau de 0 bit significatif (c'est &agrave; dire 0.0.0.0/0) est
1959     identique &agrave; la constante <var>_Default_</var>, et peut correspondre
1960     &agrave; toute adresse IP.</p></dd>
1961
1962     <!-- ===================== IPAddr ======================= -->
1963     <dt><var><a name="ipaddr" id="ipaddr">Adresse IP</a></var></dt>
1964     <dd>
1965     <p>Une <dfn>Adresse IP</dfn> est une adresse internet pleinement
1966     qualifi&eacute;e sous forme num&eacute;rique (quatre nombres s&eacute;par&eacute;s par des
1967     points). En g&eacute;n&eacute;ral, cette adresse repr&eacute;sente un serveur, mais elle
1968     ne doit pas n&eacute;cessairement correspondre &agrave; un nom de domaine DNS.</p>
1969     <example><title>Exemple</title>
1970       192.168.123.7
1971     </example>
1972
1973     <note><title>Note</title>
1974       <p>Une <dfn>Adresse IP</dfn> ne n&eacute;cessite pas de r&eacute;solution DNS,
1975       et peut ainsi s'av&eacute;rer plus efficace quant aux performances
1976       d'Apache.</p>
1977     </note></dd>
1978
1979     <!-- ===================== Hostname ======================= -->
1980     <dt><var><a name="hostname" id="hostname">Nom de serveur</a></var></dt>
1981     <dd>
1982     <p>Un <dfn>Nom de serveur</dfn> est un nom de domaine DNS pleinement
1983     qualifi&eacute; qui peut &ecirc;tre r&eacute;solu en une ou plusieurs adresses IP par le
1984     service de noms de domaines DNS. Il repr&eacute;sente un h&ocirc;te logique (par
1985     opposition aux <var><a href="#domain">Domaine</a></var>s, voir
1986     ci-dessus), et doit pouvoir &ecirc;tre r&eacute;solu en une ou plusieurs <var><a
1987     href="#ipaddr">adresses IP</a></var> (ou souvent en une liste
1988     d'h&ocirc;tes avec diff&eacute;rentes <var><a href="#ipaddr">adresses
1989     IP</a></var>).</p>
1990
1991     <example><title>Exemples</title>
1992       prep.ai.example.edu<br />
1993       www.example.org
1994     </example>
1995
1996     <note><title>Note</title>
1997       <p>Dans de nombreuses situations, il est plus efficace de
1998       sp&eacute;cifier une <var><a href="#ipaddr">adresse IP</a></var> qu'un
1999       <var>Nom de serveur</var> car cela &eacute;vite d'avoir &agrave; effectuer une
2000       recherche DNS. La r&eacute;solution de nom dans Apache httpd peut prendre un
2001       temps tr&egrave;s long lorsque la connexion avec le serveur de noms
2002       utilise une liaison PPP lente.</p>
2003       <p>Les comparaisons de <var>Nom de serveur</var> s'effectuent sans tenir
2004       compte de la casse, et les parties droites des <var>Noms de serveur</var>
2005       sont toujours cens&eacute;es correspondre &agrave; la racine de l'arborescence
2006       DNS, si bien que les domaines <code>WWW.ExEmple.com</code> et
2007       <code>www.example.com.</code> (notez le point &agrave; la fin du nom) sont
2008       consid&eacute;r&eacute;s comme identiques.</p>
2009      </note></dd>
2010     </dl>
2011 </usage>
2012 <seealso><a href="../dns-caveats.html">Probl&egrave;mes li&eacute;s au DNS</a></seealso>
2013 </directivesynopsis>
2014
2015 <directivesynopsis>
2016 <name>ProxyTimeout</name>
2017 <description>D&eacute;lai d'attente r&eacute;seau pour les requ&ecirc;tes
2018 mandat&eacute;es</description>
2019 <syntax>ProxyTimeout <var>secondes</var></syntax>
2020 <default>Valeur de la directive <directive
2021 module="core">Timeout</directive></default>
2022 <contextlist><context>server config</context><context>virtual host</context>
2023 </contextlist>
2024
2025 <usage>
2026     <p>Cette directive permet &agrave; l'utilisateur de sp&eacute;cifier un d&eacute;lai pour
2027     les requ&ecirc;tes mandat&eacute;es. Ceci s'av&egrave;re utile dans le cas d'un serveur
2028     d'applications lent et bogu&eacute; qui a tendance &agrave; se bloquer, et si vous
2029     pr&eacute;f&eacute;rez simplement renvoyer une erreur timeout et abandonner la
2030     connexion en douceur plut&ocirc;t que d'attendre jusqu'&agrave; ce que le serveur
2031     veuille bien r&eacute;pondre.</p>
2032 </usage>
2033 </directivesynopsis>
2034
2035 <directivesynopsis>
2036 <name>ProxyDomain</name>
2037 <description>Nom de domaine par d&eacute;faut pour les requ&ecirc;tes
2038 mandat&eacute;es</description>
2039 <syntax>ProxyDomain <var>Domaine</var></syntax>
2040 <contextlist><context>server config</context><context>virtual host</context>
2041 </contextlist>
2042
2043 <usage>
2044     <p>Cette directive n'a d'utilit&eacute; que pour les serveurs mandataires
2045     Apache httpd au sein d'un Intranet. La directive
2046     <directive>ProxyDomain</directive> permet de sp&eacute;cifier le domaine
2047     par d&eacute;faut auquel le serveur mandataire apache appartient. Si le
2048     serveur re&ccedil;oit une requ&ecirc;te pour un h&ocirc;te sans nom de domaine, il va
2049     g&eacute;n&eacute;rer une r&eacute;ponse de redirection vers le m&ecirc;me h&ocirc;te suffix&eacute; par le
2050     <var>Domaine</var> sp&eacute;cifi&eacute;.</p>
2051
2052     <example><title>Exemple</title>
2053     <highlight language="config">
2054       ProxyRemote  *  http://firewall.example.com:81<br />
2055       NoProxy         .example.com 192.168.112.0/21<br />
2056       ProxyDomain     .example.com
2057       </highlight>
2058     </example>
2059 </usage>
2060 </directivesynopsis>
2061
2062 <directivesynopsis>
2063 <name>ProxyVia</name>
2064 <description>Information fournie dans l'en-t&ecirc;te de r&eacute;ponse HTTP
2065 <code>Via</code> pour les requ&ecirc;tes mandat&eacute;es</description>
2066 <syntax>ProxyVia On|Off|Full|Block</syntax>
2067 <default>ProxyVia Off</default>
2068 <contextlist><context>server config</context><context>virtual host</context>
2069 </contextlist>
2070
2071 <usage>
2072     <p>Cette directive permet de contr&ocirc;ler l'utilisation de l'en-t&ecirc;te
2073     HTTP <code>Via:</code> par le mandataire. Le but recherch&eacute; est de
2074     contr&ocirc;ler le flux des requ&ecirc;tes mandat&eacute;es tout au long d'une cha&icirc;ne
2075     de serveurs mandataires. Voir <a
2076     href="http://www.ietf.org/rfc/rfc2616.txt">RFC 2616</a> (HTTP/1.1),
2077     section 14.45 pour une description des lignes d'en-t&ecirc;te
2078     <code>Via:</code>.</p>
2079
2080     <ul>
2081     <li>Si elle est d&eacute;finie &agrave; <code>Off</code>, valeur par d&eacute;faut, cette
2082     directive n'effectue aucun traitement particulier. Si une requ&ecirc;te ou
2083     une r&eacute;ponse contient un en-t&ecirc;te <code>Via:</code>, il est transmis
2084     sans modification.</li>
2085
2086     <li>Si elle est d&eacute;finie &agrave; <code>On</code>, chaque requ&ecirc;te ou r&eacute;ponse
2087     se verra ajouter une ligne d'en-t&ecirc;te <code>Via:</code> pour le
2088     serveur courant.</li>
2089
2090     <li>Si elle est d&eacute;finie &agrave; <code>Full</code>, chaque ligne d'en-t&ecirc;te
2091     <code>Via:</code> se verra ajouter la version du serveur Apache
2092     httpd sous la forme d'un champ de commentaire <code>Via:</code>.</li>
2093
2094     <li>Si elle est d&eacute;finie &agrave; <code>Block</code>, chaque requ&ecirc;te
2095     mandat&eacute;e verra ses lignes d'en-t&ecirc;te <code>Via:</code> supprim&eacute;es.
2096     Aucun nouvel en-t&ecirc;te <code>Via:</code> ne sera g&eacute;n&eacute;r&eacute;.</li>
2097     </ul>
2098 </usage>
2099 </directivesynopsis>
2100
2101 <directivesynopsis>
2102 <name>ProxyErrorOverride</name>
2103 <description>Outrepasser les pages d'erreur pour les contenus
2104 mandat&eacute;s</description>
2105 <syntax>ProxyErrorOverride On|Off</syntax>
2106 <default>ProxyErrorOverride Off</default>
2107 <contextlist><context>server config</context><context>virtual host</context>
2108 <context>directory</context>
2109 </contextlist>
2110
2111 <usage>
2112     <p>Cette directive est utile pour les configurations de mandataires
2113     inverses, lorsque vous souhaitez que les pages d'erreur envoy&eacute;es
2114     aux utilisateurs finaux pr&eacute;sentent un aspect homog&egrave;ne. Elle permet
2115     aussi l'inclusion de fichiers (via les SSI de
2116     <module>mod_include</module>) pour obtenir le code d'erreur et agir
2117     en cons&eacute;quence (le comportement par d&eacute;faut afficherait la page
2118     d'erreur du serveur mandat&eacute;, alors que c'est le message d'erreur SSI
2119     qui sera affich&eacute; si cette directive est &agrave; "on").</p>
2120
2121     <p>Cette directive n'affecte pas le traitement des r&eacute;ponses
2122     informatives (1xx), de type succ&egrave;s normal (2xx), ou de redirection
2123     (3xx).</p>
2124 </usage>
2125 </directivesynopsis>
2126
2127 <directivesynopsis>
2128 <name>ProxyPassInterpolateEnv</name>
2129 <description>Active l'interpolation des variables d'environnement dans
2130 les configurations de mandataires inverses</description>
2131 <syntax>ProxyPassInterpolateEnv On|Off</syntax>
2132 <default>ProxyPassInterpolateEnv Off</default>
2133 <contextlist><context>server config</context> <context>virtual host</context>
2134 <context>directory</context>
2135 </contextlist>
2136
2137 <usage>
2138     <p>Cette directive, ainsi que l'argument <var>interpolate</var> des
2139     directives <directive>ProxyPass</directive>,
2140     <directive>ProxyPassReverse</directive>,
2141     <directive>ProxyPassReverseCookieDomain</directive> et
2142     <directive>ProxyPassReverseCookiePath</directive>, permet de
2143     configurer dynamiquement un mandataire inverse &agrave; l'aide de
2144     variables d'environnement, ces derni&egrave;res pouvant &ecirc;tre d&eacute;finies par un
2145     autre module comme <module>mod_rewrite</module>. Elle affecte les
2146     directives <directive>ProxyPass</directive>,
2147     <directive>ProxyPassReverse</directive>,
2148     <directive>ProxyPassReverseCookieDomain</directive>, et
2149     <directive>ProxyPassReverseCookiePath</directive>, en leur indiquant
2150     de remplacer la cha&icirc;ne <code>${nom_var}</code> dans les directives
2151     de configuration par la valeur de la variable d'environnement
2152     <code>nom_var</code> (si l'option <var>interpolate</var> est
2153     sp&eacute;cifi&eacute;e).</p>
2154     <p>Conservez cette directive &agrave; off (pour les performances du
2155     serveur), sauf si vous en avez r&eacute;ellement besoin.</p>
2156 </usage>
2157 </directivesynopsis>
2158
2159 <directivesynopsis>
2160 <name>ProxyStatus</name>
2161 <description>Affiche l'&eacute;tat du r&eacute;partiteur de charge du mandataire dans
2162 mod_status</description>
2163 <syntax>ProxyStatus Off|On|Full</syntax>
2164 <default>ProxyStatus Off</default>
2165 <contextlist><context>server config</context>
2166 <context>virtual host</context>
2167 </contextlist>
2168
2169 <usage>
2170     <p>Cette directive permet de sp&eacute;cifier si les donn&eacute;es d'&eacute;tat du
2171     r&eacute;partiteur de charge du mandataire doivent &ecirc;tre affich&eacute;es via la
2172     page d'&eacute;tat du serveur du module <module>mod_status</module>.</p>
2173     <note><title>Note</title>
2174       <p>L'argument <strong>Full</strong> produit le m&ecirc;me effet que
2175       l'argument <strong>On</strong>.</p>
2176     </note>
2177
2178 </usage>
2179 </directivesynopsis>
2180
2181 <directivesynopsis>
2182 <name>ProxyAddHeaders</name>
2183 <description>Ajoute des informations &agrave; propos du mandataire aux
2184 en-t&ecirc;tes X-Forwarded-*</description>
2185 <syntax>ProxyAddHeaders Off|On</syntax>
2186 <default>ProxyAddHeaders On</default>
2187 <contextlist><context>server config</context>
2188 <context>virtual host</context>
2189 <context>directory</context>
2190 </contextlist>
2191 <compatibility>Disponible depuis la version 2.3.10</compatibility>
2192
2193 <usage>
2194     <p>Cette directive permet de passer au serveur d'arri&egrave;re-plan des
2195     informations &agrave; propos du mandataire via les en-t&ecirc;tes HTTP
2196     X-Forwarded-For, X-Forwarded-Host et X-Forwarded-Server.</p>
2197     <note><title>Utilit&eacute;</title>
2198      <p>Cette option n'est utile que dans le cas du mandat HTTP trait&eacute;
2199      par <module>mod_proxy_http</module>.</p>
2200     </note>
2201 </usage>
2202 </directivesynopsis>
2203
2204 <directivesynopsis>
2205 <name>ProxySourceAddress</name>
2206 <description>D&eacute;finit l'adresse IP locale pour les connexions mandat&eacute;es
2207 sortantes</description>
2208 <syntax>ProxySourceAddress <var>adresse</var></syntax>
2209 <contextlist><context>server config</context>
2210 <context>virtual host</context>
2211 </contextlist>
2212 <compatibility>Disponible depuis la version 2.3.9</compatibility>
2213
2214 <usage>
2215     <p>Cette directive permet de d&eacute;finir une adresse IP locale
2216     sp&eacute;cifique &agrave; laquelle faire r&eacute;f&eacute;rence lors d'une connexion &agrave; un
2217     serveur d'arri&egrave;re-plan.</p>
2218
2219 </usage>
2220 </directivesynopsis>
2221
2222 </modulesynopsis>