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