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