github.com/krum110487/go-htaccess@v0.0.0-20240316004156-60641c8e7598/tests/data/apache_2_2_34/manual/mod/mod_proxy.html.fr (about) 1 <?xml version="1.0" encoding="ISO-8859-1"?> 2 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> 3 <html xmlns="http://www.w3.org/1999/xhtml" lang="fr" xml:lang="fr"><head> 4 <meta content="text/html; charset=ISO-8859-1" http-equiv="Content-Type" /> 5 <!-- 6 XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX 7 This file is generated from xml source: DO NOT EDIT 8 XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX 9 --> 10 <title>mod_proxy - Serveur Apache HTTP Version 2.2</title> 11 <link href="../style/css/manual.css" rel="stylesheet" media="all" type="text/css" title="Main stylesheet" /> 12 <link href="../style/css/manual-loose-100pc.css" rel="alternate stylesheet" media="all" type="text/css" title="No Sidebar - Default font size" /> 13 <link href="../style/css/manual-print.css" rel="stylesheet" media="print" type="text/css" /><link rel="stylesheet" type="text/css" href="../style/css/prettify.css" /> 14 <script src="../style/scripts/prettify.min.js" type="text/javascript"> 15 </script> 16 17 <link href="../images/favicon.ico" rel="shortcut icon" /><link href="http://httpd.apache.org/docs/current/mod/mod_proxy.html" rel="canonical" /></head> 18 <body> 19 <div id="page-header"> 20 <p class="menu"><a href="../mod/">Modules</a> | <a href="../mod/directives.html">Directives</a> | <a href="http://wiki.apache.org/httpd/FAQ">FAQ</a> | <a href="../glossary.html">Glossaire</a> | <a href="../sitemap.html">Plan du site</a></p> 21 <p class="apache">Serveur Apache HTTP Version 2.2</p> 22 <img alt="" src="../images/feather.gif" /></div> 23 <div class="up"><a href="./"><img title="<-" alt="<-" src="../images/left.gif" /></a></div> 24 <div id="path"> 25 <a href="http://www.apache.org/">Apache</a> > <a href="http://httpd.apache.org/">Serveur HTTP</a> > <a href="http://httpd.apache.org/docs/">Documentation</a> > <a href="../">Version 2.2</a> > <a href="./">Modules</a></div> 26 <div id="page-content"> 27 <div class="retired"><h4>A savoir</h4> 28 <p>Ce document concerne une version ancienne (<strong>2.2</strong>) 29 du serveur HTTP Apache. La version actuelle est 30 documentée <a href="http://httpd.apache.org/docs/current">ici</a>. Si vous n'avez 31 pas encore effectué la mise è jour, veuillez suivre <a href="http://httpd.apache.org/docs/current/upgrading.html">ce 32 lien</a> pour plus d'informations.</p> 33 <p>Pour consulter la version actuelle de ce 34 document, vous pouvez suivre <a href="http://httpd.apache.org/docs/current/mod/mod_proxy.html">ce lien</a>.</p></div><div id="preamble"><h1>Module Apache mod_proxy</h1> 35 <div class="toplang"> 36 <p><span>Langues Disponibles: </span><a href="../en/mod/mod_proxy.html" hreflang="en" rel="alternate" title="English"> en </a> | 37 <a href="../fr/mod/mod_proxy.html" title="Français"> fr </a> | 38 <a href="../ja/mod/mod_proxy.html" hreflang="ja" rel="alternate" title="Japanese"> ja </a></p> 39 </div> 40 <table class="module"><tr><th><a href="module-dict.html#Description">Description:</a></th><td>Serveur mandataire/passerelle HTTP/1.1</td></tr> 41 <tr><th><a href="module-dict.html#Status">Statut:</a></th><td>Extension</td></tr> 42 <tr><th><a href="module-dict.html#ModuleIdentifier">Identificateur de Module:</a></th><td>proxy_module</td></tr> 43 <tr><th><a href="module-dict.html#SourceFile">Fichier Source:</a></th><td>mod_proxy.c</td></tr></table> 44 <h3>Sommaire</h3> 45 46 <div class="warning"><h3>Avertissement</h3> 47 <p>N'activez pas la fonctionnalité de mandataire avec la directive 48 <code class="directive"><a href="#proxyrequests">ProxyRequests</a></code> avant 49 d'avoir <a href="#access">sécurisé votre serveur</a>. Les serveurs 50 mandataires ouverts sont dangereux pour votre réseau, 51 mais aussi pour l'Internet au sens large.</p> 52 </div> 53 54 <p>Ce module implémente un mandataire/passerelle pour Apache. Il 55 implémente la fonctionnalité de mandataire pour <code>AJP13</code> 56 (Apache JServe Protocol version 1.3), <code>FTP</code>, 57 <code>CONNECT</code> (pour SSL), <code>HTTP/0.9</code>, 58 <code>HTTP/1.0</code>, et <code>HTTP/1.1</code>. Le module peut être 59 configuré pour se connecter aux autres modules mandataires qui 60 gèrent ces protocoles.</p> 61 62 <p>Les diverses fonctionnalités de 63 mandataire d'Apache sont réparties entre plusieurs modules 64 complémentaires de <code class="module"><a href="../mod/mod_proxy.html">mod_proxy</a></code> : 65 <code class="module"><a href="../mod/mod_proxy_http.html">mod_proxy_http</a></code>, <code class="module"><a href="../mod/mod_proxy_ftp.html">mod_proxy_ftp</a></code>, 66 <code class="module"><a href="../mod/mod_proxy_ajp.html">mod_proxy_ajp</a></code>, <code class="module"><a href="../mod/mod_proxy_balancer.html">mod_proxy_balancer</a></code>, 67 et <code class="module"><a href="../mod/mod_proxy_connect.html">mod_proxy_connect</a></code>. Ainsi, si vous voulez 68 utiliser une ou plusieurs fonctionnalités de mandataire 69 particulières, chargez <code class="module"><a href="../mod/mod_proxy.html">mod_proxy</a></code> <em>et</em> le(s) 70 module(s) approprié(s) dans le serveur (soit statiquement à la 71 compilation, soit dynamiquement via la directive <code class="directive"><a href="../mod/mod_so.html#loadmodule">LoadModule</a></code>).</p> 72 73 <p>En outre, d'autres modules fournissent des fonctionnalités 74 étendues. <code class="module"><a href="../mod/mod_cache.html">mod_cache</a></code> et ses modules associés 75 fournissent la mise en cache. Les directives <code>SSLProxy*</code> 76 du module <code class="module"><a href="../mod/mod_ssl.html">mod_ssl</a></code> permettent de contacter des 77 serveurs distants en utilisant le protocole SSL/TLS. Ces modules 78 additionnels devront être chargés et configurés pour pouvoir 79 disposer de ces fonctionnalités.</p> 80 </div> 81 <div id="quickview"><h3>Sujets</h3> 82 <ul id="topics"> 83 <li><img alt="" src="../images/down.gif" /> <a href="#forwardreverse">Mandataires directs et 84 mandataires/passerelles inverses</a></li> 85 <li><img alt="" src="../images/down.gif" /> <a href="#examples">Exemples simples</a></li> 86 <li><img alt="" src="../images/down.gif" /> <a href="#workers">Gestionnaires de serveurs (workers)</a></li> 87 <li><img alt="" src="../images/down.gif" /> <a href="#access">Contrôler l'accès à votre 88 mandataire</a></li> 89 <li><img alt="" src="../images/down.gif" /> <a href="#startup">Ralentissement au démarragep</a></li> 90 <li><img alt="" src="../images/down.gif" /> <a href="#intranet">Mandataire d'Intranet</a></li> 91 <li><img alt="" src="../images/down.gif" /> <a href="#envsettings">Ajustements relatifs au 92 protocole</a></li> 93 <li><img alt="" src="../images/down.gif" /> <a href="#request-bodies">Corps de requêtes</a></li> 94 <li><img alt="" src="../images/down.gif" /> <a href="#x-headers">En-têtes de requête du mandataire 95 inverse</a></li> 96 </ul><h3 class="directives">Directives</h3> 97 <ul id="toc"> 98 <li><img alt="" src="../images/down.gif" /> <a href="#allowconnect">AllowCONNECT</a></li> 99 <li><img alt="" src="../images/down.gif" /> <a href="#balancermember">BalancerMember</a></li> 100 <li><img alt="" src="../images/down.gif" /> <a href="#noproxy">NoProxy</a></li> 101 <li><img alt="" src="../images/down.gif" /> <a href="#proxy"><Proxy></a></li> 102 <li><img alt="" src="../images/down.gif" /> <a href="#proxybadheader">ProxyBadHeader</a></li> 103 <li><img alt="" src="../images/down.gif" /> <a href="#proxyblock">ProxyBlock</a></li> 104 <li><img alt="" src="../images/down.gif" /> <a href="#proxydomain">ProxyDomain</a></li> 105 <li><img alt="" src="../images/down.gif" /> <a href="#proxyerroroverride">ProxyErrorOverride</a></li> 106 <li><img alt="" src="../images/down.gif" /> <a href="#proxyftpdircharset">ProxyFtpDirCharset</a></li> 107 <li><img alt="" src="../images/down.gif" /> <a href="#proxyiobuffersize">ProxyIOBufferSize</a></li> 108 <li><img alt="" src="../images/down.gif" /> <a href="#proxymatch"><ProxyMatch></a></li> 109 <li><img alt="" src="../images/down.gif" /> <a href="#proxymaxforwards">ProxyMaxForwards</a></li> 110 <li><img alt="" src="../images/down.gif" /> <a href="#proxypass">ProxyPass</a></li> 111 <li><img alt="" src="../images/down.gif" /> <a href="#proxypassinterpolateenv">ProxyPassInterpolateEnv</a></li> 112 <li><img alt="" src="../images/down.gif" /> <a href="#proxypassmatch">ProxyPassMatch</a></li> 113 <li><img alt="" src="../images/down.gif" /> <a href="#proxypassreverse">ProxyPassReverse</a></li> 114 <li><img alt="" src="../images/down.gif" /> <a href="#proxypassreversecookiedomain">ProxyPassReverseCookieDomain</a></li> 115 <li><img alt="" src="../images/down.gif" /> <a href="#proxypassreversecookiepath">ProxyPassReverseCookiePath</a></li> 116 <li><img alt="" src="../images/down.gif" /> <a href="#proxypreservehost">ProxyPreserveHost</a></li> 117 <li><img alt="" src="../images/down.gif" /> <a href="#proxyreceivebuffersize">ProxyReceiveBufferSize</a></li> 118 <li><img alt="" src="../images/down.gif" /> <a href="#proxyremote">ProxyRemote</a></li> 119 <li><img alt="" src="../images/down.gif" /> <a href="#proxyremotematch">ProxyRemoteMatch</a></li> 120 <li><img alt="" src="../images/down.gif" /> <a href="#proxyrequests">ProxyRequests</a></li> 121 <li><img alt="" src="../images/down.gif" /> <a href="#proxyset">ProxySet</a></li> 122 <li><img alt="" src="../images/down.gif" /> <a href="#proxystatus">ProxyStatus</a></li> 123 <li><img alt="" src="../images/down.gif" /> <a href="#proxytimeout">ProxyTimeout</a></li> 124 <li><img alt="" src="../images/down.gif" /> <a href="#proxyvia">ProxyVia</a></li> 125 </ul> 126 <h3>Voir aussi</h3> 127 <ul class="seealso"> 128 <li><code class="module"><a href="../mod/mod_cache.html">mod_cache</a></code></li> 129 <li><code class="module"><a href="../mod/mod_proxy_http.html">mod_proxy_http</a></code></li> 130 <li><code class="module"><a href="../mod/mod_proxy_ftp.html">mod_proxy_ftp</a></code></li> 131 <li><code class="module"><a href="../mod/mod_proxy_connect.html">mod_proxy_connect</a></code></li> 132 <li><code class="module"><a href="../mod/mod_proxy_balancer.html">mod_proxy_balancer</a></code></li> 133 <li><code class="module"><a href="../mod/mod_ssl.html">mod_ssl</a></code></li> 134 </ul><ul class="seealso"><li><a href="#comments_section">Commentaires</a></li></ul></div> 135 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> 136 <div class="section"> 137 <h2><a name="forwardreverse" id="forwardreverse">Mandataires directs et 138 mandataires/passerelles inverses</a></h2> 139 <p>Apache peut être configuré dans les deux modes mandataire 140 <dfn>direct</dfn> et mandataire <dfn>inverse</dfn> (aussi nommé 141 mode <dfn>passerelle</dfn>).</p> 142 143 <p>Un <dfn>mandataire direct</dfn> standard est un serveur 144 intermédiaire qui s'intercale entre le client et le <em>serveur 145 demandé</em>. Pour obtenir un contenu hébergé par 146 le serveur demandé, le client envoie une requête au 147 mandataire en nommant le serveur demandé comme 148 cible, puis le mandataire extrait le contenu depuis le 149 serveur demandé et le renvoie enfin au client. Le client doit être 150 configuré de manière appropriée pour pouvoir utiliser le mandataire 151 direct afin d'accéder à d'autres sites.</p> 152 153 <p>L'accès à Internet depuis des clients situés derrière un 154 pare-feu est une utilisation typique du mandataire direct. Le 155 mandataire direct peut aussi utiliser la mise en cache (fournie 156 par <code class="module"><a href="../mod/mod_cache.html">mod_cache</a></code>) pour réduire la charge du 157 réseau.</p> 158 159 <p>La fonctionnalité de mandataire direct est activée via la 160 directive <code class="directive"><a href="#proxyrequests">ProxyRequests</a></code>. 161 Comme les mandataires directs permettent aux clients d'accéder à 162 des sites quelconques via votre serveur et de dissimuler leur 163 véritable origine, il est indispensable de <a href="#access">sécuriser votre serveur</a> de façon à ce que seuls 164 les clients autorisés puissent accéder à votre serveur avant 165 d'activer la fonctionnalité de mandataire direct.</p> 166 167 <p>Un <dfn>mandataire inverse</dfn> (ou <dfn>passerelle</dfn>), 168 quant à lui, apparaît au client comme un serveur web standard. 169 Aucune configuration particulière du client n'est nécessaire. Le 170 client adresse ses demandes de contenus ordinaires dans l'espace 171 de nommage du mandataire inverse. Ce dernier décide alors où 172 envoyer ces requêtes, et renvoie le contenu au client comme s'il 173 l'hébergeait lui-même.</p> 174 175 <p>L'accès des utilisateurs à Internet pour un serveur situé 176 derrière un pare-feu est une utilisation typique du mandataire 177 inverse. On peut aussi utiliser les mandataires inverses pour 178 mettre en oeuvre une répartition de charge entre plusieurs 179 serveurs en arrière-plan, ou fournir un cache pour un serveur 180 d'arrière-plan plus lent. Les mandataires inverses peuvent aussi 181 tout simplement servir à rassembler plusieurs serveurs dans le 182 même espace de nommage d'URLs.</p> 183 184 <p>La fonctionnalité de mandataire inverse est activée via la 185 directive <code class="directive"><a href="#proxypass">ProxyPass</a></code> ou 186 le drapeau <code>[P]</code> de la directive <code class="directive"><a href="../mod/mod_rewrite.html#rewriterule">RewriteRule</a></code>. Il n'est 187 <strong>pas</strong> nécessaire de définir <code class="directive"><a href="#proxyrequests">ProxyRequests</a></code> à on pour configurer 188 un mandataire inverse.</p> 189 </div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> 190 <div class="section"> 191 <h2><a name="examples" id="examples">Exemples simples</a></h2> 192 193 <p>Les exemples ci-dessous illustrent de manière très basique la 194 mise en oeuvre de la fonctionnalité de mandataire et ne sont là que 195 pour vous aider à démarrer. Reportez-vous à la documentation de 196 chaque directive.</p> 197 198 <p>Si en outre, vous désirez activer la mise en cache, consultez la 199 documentation de <code class="module"><a href="../mod/mod_cache.html">mod_cache</a></code>.</p> 200 201 <div class="example"><h3>Mandataire inverse</h3><p><code> 202 ProxyPass /foo http://foo.example.com/bar<br /> 203 ProxyPassReverse /foo http://foo.example.com/bar 204 </code></p></div> 205 206 <div class="example"><h3>Mandataire direct</h3><p><code> 207 ProxyRequests On<br /> 208 ProxyVia On<br /> 209 <br /> 210 <Proxy *><br /> 211 <span class="indent"> 212 Order deny,allow<br /> 213 Deny from all<br /> 214 Allow from interne.example.com<br /> 215 </span> 216 </Proxy> 217 </code></p></div> 218 219 </div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> 220 <div class="section"> 221 <h2><a name="workers" id="workers">Gestionnaires de serveurs (workers)</a></h2> 222 <p>Le mandataire gère la configuration des serveurs originaux, 223 ainsi que leurs paramètres de communication dans des objets 224 appelés <dfn>workers</dfn> ou Gestionnaires de serveur. Deux 225 workers intégrés par défaut sont disponibles : le worker de 226 mandataire direct et le worker de mandataire inverse. Des workers 227 supplémentaires peuvent être configurés explicitement.</p> 228 229 <p>Les deux workers par défaut ont une configuration fixe et 230 seront utilisés si aucun autre worker ne correspond à la requête. 231 Ils n'utilisent ni les connexions HTTP persistantes, ni les jeux 232 de connexions. Les connexions TCP vers le serveur original seront 233 donc ouvertes et fermées pour chaque requête.</p> 234 235 <p>Les workers configurés explicitement sont identifiés par leur 236 URL. Dans le cas d'un mandataire inverse, ils sont généralement 237 créés et configurés via les directives <code class="directive"><a href="#proxypass">ProxyPass</a></code> ou <code class="directive"><a href="#proxypassmatch">ProxyPassMatch</a></code> :</p> 238 239 <div class="example"><p><code> 240 ProxyPass /example http://backend.example.com connectiontimeout=5 timeout=30 241 </code></p></div> 242 243 <p>Cet exemple crée un worker associé à l'URL du serveur original 244 <code>http://backend.example.com</code>, qui utilisera les délais 245 spécifiés. Dans le cas d'un mandataire direct, les workers sont 246 généralement définis via la directive <code class="directive"><a href="#proxyset">ProxySet</a></code> directive :</p> 247 248 <div class="example"><p><code> 249 ProxySet http://backend.example.com connectiontimeout=5 timeout=30 250 </code></p></div> 251 252 <p>ou encore via une combinaison des directives <code class="directive"><a href="#proxy">Proxy</a></code> et <code class="directive"><a href="#proxyset">ProxySet</a></code> :</p> 253 254 <div class="example"><p><code> 255 <Proxy http://backend.example.com><br /> 256 <span class="indent"> 257 ProxySet connectiontimeout=5 timeout=30 258 </span> 259 </Proxy> 260 </code></p></div> 261 262 <p>L'utilisation de workers configurés explicitement dans le mode 263 direct n'est pas très courante, car les mandataires directs 264 communiquent avec de nombreux serveurs originaux. Il est cependant 265 intéressant de créer des workers explicites pour certains serveurs 266 originaux si ces derniers sont utilisés très souvent. Les workers 267 configurés explicitement n'ont en eux-mêmes aucun concept de 268 mandataire direct ou inverse. Ils encapsulent un concept de 269 communication commun avec les serveurs originaux. Un worker créé 270 via la directive <code class="directive"><a href="#proxypass">ProxyPass</a></code> pour être utilisé avec un 271 mandataire inverse, sera aussi utilisé pour les requêtes mandatées 272 en direct chaque fois que l'URL du serveur original correspondra à 273 l'URL du worker, et vice versa.</p> 274 275 <p>L'URL identifiant un worker direct correspond à l'URL de son 276 serveur original comportant tout élément de chemin éventuel :</p> 277 278 <div class="example"><p><code> 279 ProxyPass /examples http://backend.example.com/examples<br /> 280 ProxyPass /docs http://backend.example.com/docs 281 </code></p></div> 282 283 <p>Cet exemple définit deux workers différents, chacun d'entre eux 284 utilisant une configuration et un jeu de connexions séparés.</p> 285 286 <div class="warning"><h3>Partage de worker</h3> 287 <p>Le partage de worker se produit lorsque les URLs des workers 288 se chevauchent, c'est à dire lorsque l'URL d'un worker 289 correspond à une partie du début de l'URL d'un autre worker 290 défini plus loin dans le fichier de configuration. Dans 291 l'exemple suivant,</p> 292 293 <div class="example"><p><code> 294 ProxyPass /apps http://backend.example.com/ timeout=60<br /> 295 ProxyPass /examples http://backend.example.com/examples timeout=10 296 </code></p></div> 297 298 <p>le second worker n'est pas vraiment créé. C'est le premier 299 worker qui est utilisé à sa place. L'avantage de ceci réside 300 dans le fait qu'il n'y a plus qu'un jeu de connexions, celles-ci 301 étant donc réutilisées plus souvent. Notez que tous les 302 attributs de configuration définis explicitement pour le second 303 worker et certaines valeurs par défaut vont écraser la 304 configuration définie pour le premier worker, ce qui va 305 provoquer la journalisation d'un avertissement. Dans l'exemple 306 précédent, la valeur de délai finale pour l'URL 307 <code>/apps</code> sera <code>10</code> au lieu de <code>60</code> !</p> 308 309 <p>Pour éviter ce partage, classez vos définitions de workers de 310 l'URL la plus longue à la plus courte. Si au contraire, vous 311 voulez favoriser ce partage, utilisez l'ordre de classement 312 inverse. Voir aussi l'avertissement en rapport à propos de 313 l'ordre de classement des directives <code class="directive"><a href="#proxypass">ProxyPass</a></code>.</p> 314 315 </div> 316 317 <p>Les workers configurés explicitement sont de deux sortes : 318 <dfn>workers directs</dfn> et <dfn>workers à répartition (de 319 charge)</dfn>. Ils supportent de nombreux attributs de 320 configuration importants décrits ci-dessous dans la directive 321 <code class="directive"><a href="#proxypass">ProxyPass</a></code>. Tous ces 322 attributs peuvent aussi être définis via la directive <code class="directive"><a href="#proxyset">ProxySet</a></code>.</p> 323 324 <p>Le jeu d'options disponibles pour un worker direct dépend du 325 protocole, qui est spécifié dans l'URL du serveur original. Parmi 326 les protocoles disponibles, on trouve <code>ajp</code>, 327 <code>ftp</code>, <code>http</code> et <code>scgi</code>.</p> 328 329 <p>Les workers à répartition sont des workers virtuels qui 330 utilisent des workers directs considérés comme leurs membres pour 331 le traitement effectif des requêtes. Chaque répartiteur peut 332 posséder plusieurs membres. Pour traiter une requête, il choisit 333 un de ses membres en fonction de l'algorithme de répartition de 334 charge défini.</p> 335 336 <p>Un worker à répartition est créé si son URL utilise 337 <code>balancer</code> comme protocole. L'URL de répartition 338 identifie de manière unique le worker à répartition. On peut 339 ajouter des membres à un répartiteur via la directive <code class="directive"><a href="#balancermember">BalancerMember</a></code>.</p> 340 341 </div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> 342 <div class="section"> 343 <h2><a name="access" id="access">Contrôler l'accès à votre 344 mandataire</a></h2> 345 <p>Vous pouvez restreindre l'accès à votre mandataire via le bloc 346 de contrôle <code class="directive"><a href="#proxy"><Proxy></a></code> comme dans 347 l'exemple suivant :</p> 348 349 <div class="example"><p><code> 350 <Proxy *><br /> 351 <span class="indent"> 352 Order Deny,Allow<br /> 353 Deny from all<br /> 354 Allow from 192.168.0<br /> 355 </span> 356 </Proxy> 357 </code></p></div> 358 359 <p>Pour plus de détails sur les directives de contrôle d'accès, 360 voir la documentation du module 361 <code class="module"><a href="../mod/mod_authz_host.html">mod_authz_host</a></code>.</p> 362 363 <p>Restreindre l'accès de manière stricte est essentiel si vous 364 mettez en oeuvre un mandataire direct (en définissant la directive 365 <code class="directive"><a href="#proxyrequests">ProxyRequests</a></code> à "on"). 366 Dans le cas contraire, votre serveur pourrait être utilisé par 367 n'importe quel client pour accéder à des serveurs quelconques, 368 tout en masquant sa véritable identité. Ceci représente un danger 369 non seulement pour votre réseau, mais aussi pour l'Internet au 370 sens large. Dans le cas de la mise en oeuvre d'un mandataire 371 inverse (en utilisant la directive <code class="directive"><a href="#proxypass">ProxyPass</a></code> avec <code>ProxyRequests Off</code>), le contrôle 372 d'accès est moins critique car les clients ne peuvent contacter 373 que les serveurs que vous avez spécifiés.</p> 374 375 </div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> 376 <div class="section"> 377 <h2><a name="startup" id="startup">Ralentissement au démarragep</a></h2> 378 <p>Si vous utilisez la directive <code class="directive"><a href="#proxyblock">ProxyBlock</a></code>, les noms d'hôtes sont résolus en adresses 379 IP puis ces dernières mises en cache au cours du démarrage 380 à des fins de tests de comparaisons ultérieurs. Ce processus peut 381 durer plusieurs secondes (ou d'avantage) en fonction de la vitesse 382 à laquelle s'effectue la résolution des noms d'hôtes.</p> 383 </div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> 384 <div class="section"> 385 <h2><a name="intranet" id="intranet">Mandataire d'Intranet</a></h2> 386 <p>Un serveur mandataire Apache situé à l'intérieur d'un Intranet 387 doit faire suivre les requêtes destinées à un serveur externe à 388 travers le pare-feu de l'entreprise (pour ce faire, définissez la 389 directive <code class="directive"><a href="#proxyremote">ProxyRemote</a></code> de 390 façon à ce qu'elle fasse suivre le <var>protocole</var> concerné 391 vers le mandataire du pare-feu). Cependant, lorsqu'il doit accéder 392 à des ressources situées dans l'Intranet, il peut se passer du 393 pare-feu pour accéder aux serveurs. A cet effet, la directive 394 <code class="directive"><a href="#noproxy">NoProxy</a></code> permet de 395 spécifier quels hôtes appartiennent à l'Intranet et peuvent donc 396 être accédés directement.</p> 397 398 <p>Les utilisateurs d'un Intranet ont tendance à oublier le nom du 399 domaine local dans leurs requêtes WWW, et demandent par exemple 400 "http://un-serveur/" au lieu de 401 <code>http://un-serveur.example.com/</code>. Certains serveurs 402 mandataires commerciaux acceptent ce genre de requête et les 403 traitent simplement en utilisant un nom de domaine local 404 implicite. Lorsque la directive <code class="directive"><a href="#proxydomain">ProxyDomain</a></code> est utilisée et si le 405 serveur est <a href="#proxyrequests">configuré comme 406 mandataire</a>, Apache peut renvoyer une réponse de redirection et 407 ainsi fournir au client l'adresse de serveur correcte, 408 entièrement qualifiée. C'est la méthode à privilégier car le 409 fichier des marque-pages de l'utilisateur contiendra alors des 410 noms de serveurs entièrement qualifiés.</p> 411 </div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> 412 <div class="section"> 413 <h2><a name="envsettings" id="envsettings">Ajustements relatifs au 414 protocole</a></h2> 415 <p>Pour les cas où <code class="module"><a href="../mod/mod_proxy.html">mod_proxy</a></code> envoie des requêtes 416 vers un serveur qui n'implémente pas correctement les connexions 417 persistantes ou le protocole HTTP/1.1, il existe deux variables 418 d'environnement qui permettent de forcer les requêtes à utiliser 419 le protocole HTTP/1.0 avec connexions non persistantes. Elles 420 peuvent être définies via la directive <code class="directive"><a href="../mod/mod_env.html#setenv">SetEnv</a></code>.</p> 421 422 <p>Il s'agit des variables <code>force-proxy-request-1.0</code> et 423 <code>proxy-nokeepalive</code>.</p> 424 425 <div class="example"><p><code> 426 <Location /serveur-non-conforme/><br /> 427 <span class="indent"> 428 ProxyPass http://serveur-non-conforme:7001/foo/<br /> 429 SetEnv force-proxy-request-1.0 1<br /> 430 SetEnv proxy-nokeepalive 1<br /> 431 </span> 432 </Location> 433 </code></p></div> 434 435 </div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> 436 <div class="section"> 437 <h2><a name="request-bodies" id="request-bodies">Corps de requêtes</a></h2> 438 439 <p>Certaines méthodes de requêtes comme POST comportent un corps de 440 requête. Le protocole HTTP stipule que les requêtes qui comportent 441 un corps doivent soit utiliser un codage de transmission 442 fractionnée, soit envoyer un en-tête de requête 443 <code>Content-Length</code>. Lorsqu'il fait suivre ce genre de 444 requête vers le serveur demandé, <code class="module"><a href="../mod/mod_proxy_http.html">mod_proxy_http</a></code> 445 s'efforce toujours d'envoyer l'en-tête <code>Content-Length</code>. 446 Par contre, si la taille du corps est importante, et si la requête 447 originale utilise un codage à fractionnement, ce dernier peut aussi 448 être utilisé dans la requête montante. Ce comportement peut être 449 contrôlé à l'aide de <a href="../env.html">variables 450 d'environnement</a>. Ainsi, si elle est définie, la variable 451 <code>proxy-sendcl</code> assure une compatibilité maximale avec les 452 serveurs demandés en imposant l'envoi de l'en-tête 453 <code>Content-Length</code>, alors que 454 <code>proxy-sendchunked</code> diminue la consommation de ressources 455 en imposant l'utilisation d'un codage à fractionnement.</p> 456 457 </div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> 458 <div class="section"> 459 <h2><a name="x-headers" id="x-headers">En-têtes de requête du mandataire 460 inverse</a></h2> 461 462 <p>Lorsqu'il est configuré en mode mandataire inverse (en utilisant 463 par exemple la directive <code class="directive"><a href="#proxypass">ProxyPass</a></code>), 464 <code class="module"><a href="../mod/mod_proxy_http.html">mod_proxy_http</a></code> ajoute plusieurs en-têtes de requête 465 afin de transmettre des informations au serveur demandé. Ces 466 en-têtes sont les suivants :</p> 467 468 <dl> 469 <dt><code>X-Forwarded-For</code></dt> 470 <dd>L'adresse IP du client.</dd> 471 <dt><code>X-Forwarded-Host</code></dt> 472 <dd>L'hôte d'origine demandé par le client dans l'en-tête de 473 requête HTTP <code>Host</code>.</dd> 474 <dt><code>X-Forwarded-Server</code></dt> 475 <dd>Le nom d'hôte du serveur mandataire.</dd> 476 </dl> 477 478 <p>Ces en-têtes doivent être utilisés avec précautions sur le 479 serveur demandé, car ils contiendront plus d'une valeur (séparées 480 par des virgules) si la requête original contenait déjà un de ces 481 en-têtes. Par exemple, vous pouvez utiliser 482 <code>%{X-Forwarded-For}i</code> dans la chaîne de format du journal 483 du serveur demandé pour enregistrer les adresses IP des clients 484 originaux, mais il est possible que vous obteniez plusieurs adresses 485 si la requête passe à travers plusieurs mandataires.</p> 486 487 <p>Voir aussi les directives <code class="directive"><a href="#proxypreservehost">ProxyPreserveHost</a></code> et <code class="directive"><a href="#proxyvia">ProxyVia</a></code> directives, qui permettent 488 de contrôler d'autres en-têtes de requête.</p> 489 490 </div> 491 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> 492 <div class="directive-section"><h2><a name="allowconnect" id="allowconnect">Directive</a> <a name="AllowCONNECT" id="AllowCONNECT">AllowCONNECT</a></h2> 493 <table class="directive"> 494 <tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Ports autorisés à se <code>CONNECT</code>er à travers le 495 mandataire</td></tr> 496 <tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>AllowCONNECT <var>port</var> [<var>port</var>] ...</code></td></tr> 497 <tr><th><a href="directive-dict.html#Default">Défaut:</a></th><td><code>AllowCONNECT 443 563</code></td></tr> 498 <tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur, serveur virtuel</td></tr> 499 <tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr> 500 <tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_proxy</td></tr> 501 </table> 502 <p>La directive <code class="directive">AllowCONNECT</code> permet de 503 spécifier une liste de numéros de ports auxquels la méthode de 504 mandataire <code>CONNECT</code> pourra se connecter. Les navigateurs 505 d'aujourd'hui utilisent cette méthode dans le cas où une connexion 506 <code>https</code> est requise et où le tunneling mandataire sur 507 HTTP est en service.</p> 508 509 <p>Par défaut, seuls les ports par défauts https (<code>443</code>) 510 et snews (<code>563</code>) sont pris en compte. Vous pouvez 511 utiliser la directive <code class="directive">AllowCONNECT</code> pour 512 outrepasser ces valeurs par défaut et n'autoriser les connexions que 513 vers les ports spécifiés.</p> 514 515 <p>Notez que le module <code class="module"><a href="../mod/mod_proxy_connect.html">mod_proxy_connect</a></code> doit être 516 chargé dans le serveur pour pouvoir accéder au support de 517 <code>CONNECT</code>.</p> 518 519 </div> 520 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> 521 <div class="directive-section"><h2><a name="balancermember" id="balancermember">Directive</a> <a name="BalancerMember" id="BalancerMember">BalancerMember</a></h2> 522 <table class="directive"> 523 <tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Ajoute un membre à un groupe de répartition de 524 charge</td></tr> 525 <tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>BalancerMember [<var>balancerurl</var>] <var>url</var> [<var>clé=valeur [clé=valeur ...]]</var></code></td></tr> 526 <tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>répertoire</td></tr> 527 <tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr> 528 <tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_proxy</td></tr> 529 <tr><th><a href="directive-dict.html#Compatibility">Compatibilité:</a></th><td>Disponible depuis la version 2.2 d'Apache.</td></tr> 530 </table> 531 <p>Cette directive parmet d'ajouter un membre à un groupe de 532 répartition de charge. Elle peut se trouver dans un conteneur 533 <code><Proxy <var>balancer://</var>...></code>, et accepte 534 tous les paramètres de paires clé/valeur que supporte la directive 535 <code class="directive"><a href="#proxypass">ProxyPass</a></code>.</p> 536 <p>L'argument balancerurl n'est requis que s'il ne se trouve pas 537 dèjà dans la directive de conteneur <code><Proxy 538 <var>balancer://</var>...></code>. Il correspond à l'URL d'un 539 répartiteur de charge défini par une directive <code class="directive"><a href="#proxypass">ProxyPass</a></code>.</p> 540 541 </div> 542 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> 543 <div class="directive-section"><h2><a name="noproxy" id="noproxy">Directive</a> <a name="NoProxy" id="NoProxy">NoProxy</a></h2> 544 <table class="directive"> 545 <tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Serveurs, domaines ou réseaux auquels on se connectera 546 directement</td></tr> 547 <tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>NoProxy <var>domaine</var> [<var>domaine</var>] ...</code></td></tr> 548 <tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur, serveur virtuel</td></tr> 549 <tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr> 550 <tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_proxy</td></tr> 551 </table> 552 <p>Cette directive n'a d'utilité que pour les serveurs mandataires 553 Apache au sein d'Intranets. La directive 554 <code class="directive">NoProxy</code> permet de spécifier une liste de 555 sous-réseaux, d'adresses IP, de serveurs et/ou de domaines séparés 556 par des espaces. Une requête pour un serveur qui correspond à un ou 557 plusieurs critères sera toujours servie par ce serveur directement, 558 sans être redirigée vers le(s) serveur(s) mandataire(s) défini(s) par 559 la directive <code class="directive"><a href="#proxyremote">ProxyRemote</a></code>.</p> 560 561 <div class="example"><h3>Exemple</h3><p><code> 562 ProxyRemote * http://pare-feu.example.com:81<br /> 563 NoProxy .example.com 192.168.112.0/21 564 </code></p></div> 565 566 <p>Le type des arguments <var>serveur</var> de la directive 567 <code class="directive">NoProxy</code> appartiennent à la liste suivante 568 :</p> 569 570 <dl> 571 572 <dt><var><a name="domain" id="domain">Domaine</a></var></dt> 573 <dd> 574 <p>Un <dfn>domaine</dfn> est ici un nom de domaine DNS partiellement 575 qualifié précédé d'un point. Il représente une liste de serveurs qui 576 appartiennent logiquement au même domaine ou à la même zonz DNS 577 (en d'autres termes, les nom des serveurs se terminent tous par 578 <var>domaine</var>).</p> 579 580 <div class="example"><h3>Exemple</h3><p><code> 581 .com .apache.org. 582 </code></p></div> 583 584 <p>Pour faire la distinction entre <var>domaine</var>s et <var><a href="#hostname">nom d'hôte</a></var>s (des points de vue à la fois 585 syntaxique et 586 sémantique, un domaine DNS pouvant aussi avoir un enregistrement DNS 587 de type A !), les <var>domaine</var>s sont toujours spécifiés en les 588 préfixant par un point.</p> 589 590 <div class="note"><h3>Note</h3> 591 <p>Les comparaisons de noms de domaines s'effectuent sans tenir 592 compte de la casse, et les parties droites des <var>Domaine</var>s 593 sont toujours censées correspondre à la racine de l'arborescence 594 DNS, si bien que les domaines <code>.ExEmple.com</code> et 595 <code>.example.com.</code> (notez le point à la fin du nom) sont 596 considérés comme identiques. Comme une comparaison de domaines ne 597 nécessite pas de recherche DNS, elle est beaucoup plus efficace 598 qu'une comparaison de sous-réseaux.</p> 599 </div></dd> 600 601 602 <dt><var><a name="subnet" id="subnet">Sous-réseau</a></var></dt> 603 <dd> 604 <p>Un <dfn>Sous-réseau</dfn> est une adresse internet partiellement 605 qualifiée sous forme numérique (quatre nombres séparés par des 606 points), optionnellement suivie d'un slash et du masque de 607 sous-réseau spécifiant le nombre de bits significatifs dans le 608 <var>Sous-réseau</var>. Il représente un sous-réseau de serveurs qui 609 peuvent être atteints depuis la même interface réseau. En l'absence 610 de masque de sous-réseau explicite, il est sous-entendu que les 611 digits manquants (ou caractères 0) de fin spécifient le masque de 612 sous-réseau (Dans ce cas, le masque de sous-réseau ne peut être 613 qu'un multiple de 8). Voici quelques exemples :</p> 614 615 <dl> 616 <dt><code>192.168</code> ou <code>192.168.0.0</code></dt> 617 <dd>le sous-réseau 192.168.0.0 avec un masque de sous-réseau 618 implicite de 16 bits significatifs (parfois exprimé sous la forme 619 <code>255.255.0.0</code>)</dd> 620 <dt><code>192.168.112.0/21</code></dt> 621 <dd>le sous-réseau <code>192.168.112.0/21</code> avec un masque de 622 sous-réseau implicite de 21 bits significatifs (parfois exprimé 623 sous la forme<code>255.255.248.0</code>)</dd> 624 </dl> 625 626 <p>Comme cas extrèmes, un <em>Sous-réseau</em> avec un masque de 627 sous-réseau de 32 bits significatifs est équivalent à une <var><a href="#ipaddr">adresse IP</a></var>, alors qu'un <em>Sous-réseau</em> avec un masque de 628 sous-réseau de 0 bit significatif (c'est à dire 0.0.0.0/0) est 629 identique à la constante <var>_Default_</var>, et peut correspondre 630 à toute adresse IP.</p></dd> 631 632 633 <dt><var><a name="ipaddr" id="ipaddr">Adresse IP</a></var></dt> 634 <dd> 635 <p>Une <dfn>Adresse IP</dfn> est une adresse internet pleinement 636 qualifiée sous forme numérique (quatre nombres séparés par des 637 points). En général, cette adresse représente un serveur, mais elle 638 ne doit pas nécessairement correspondre à un nom de domaine DNS.</p> 639 <div class="example"><h3>Exemple</h3><p><code> 640 192.168.123.7 641 </code></p></div> 642 643 <div class="note"><h3>Note</h3> 644 <p>Une <dfn>Adresse IP</dfn> ne nécessite pas de résolution DNS, 645 et peut ainsi s'avérer plus efficace quant aux performances 646 d'Apache.</p> 647 </div></dd> 648 649 650 <dt><var><a name="hostname" id="hostname">Nom de serveur</a></var></dt> 651 <dd> 652 <p>Un <dfn>Nom de serveur</dfn> est un nom de domaine DNS pleinement 653 qualifié qui peut être résolu en une ou plusieurs adresses IP par le 654 service de noms de domaines DNS. Il représente un hôte logique (par 655 opposition aux <var><a href="#domain">Domaine</a></var>s, voir 656 ci-dessus), et doit pouvoir être résolu en une ou plusieurs <var><a href="#ipaddr">adresses IP</a></var> (ou souvent en une liste 657 d'hôtes avec différentes <var><a href="#ipaddr">adresses 658 IP</a></var>).</p> 659 660 <div class="example"><h3>Exemples</h3><p><code> 661 prep.ai.example.com<br /> 662 www.apache.org 663 </code></p></div> 664 665 <div class="note"><h3>Note</h3> 666 <p>Dans de nombreuses situations, il est plus efficace de 667 spécifier une <var><a href="#ipaddr">adresse IP</a></var> qu'un 668 <var>Nom de serveur</var> car cela évite d'avoir à effectuer une 669 recherche DNS. La résolution de nom dans Apache peut prendre un 670 temps très long lorsque la connexion avec le serveur de noms 671 utilise une liaison PPP lente.</p> 672 <p>Les comparaisons de <var>Nom de serveur</var> s'effectuent sans tenir 673 compte de la casse, et les parties droites des <var>Noms de serveur</var> 674 sont toujours censées correspondre à la racine de l'arborescence 675 DNS, si bien que les domaines <code>WWW.ExEmple.com</code> et 676 <code>www.example.com.</code> (notez le point à la fin du nom) sont 677 considérés comme identiques.</p> 678 </div></dd> 679 </dl> 680 681 <h3>Voir aussi</h3> 682 <ul> 683 <li><a href="../dns-caveats.html">Problèmes liés au DNS</a></li> 684 </ul> 685 </div> 686 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> 687 <div class="directive-section"><h2><a name="proxy" id="proxy">Directive</a> <a name="Proxy" id="Proxy"><Proxy></a></h2> 688 <table class="directive"> 689 <tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Conteneur de directives s'appliquant à des ressources 690 mandatées</td></tr> 691 <tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code><Proxy <var>url-avec-jokers</var>> ...</Proxy></code></td></tr> 692 <tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur, serveur virtuel</td></tr> 693 <tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr> 694 <tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_proxy</td></tr> 695 </table> 696 <p>Les directives situées dans une section <code class="directive"><Proxy></code> ne s'appliquent qu'au contenu 697 mandaté concerné. Les jokers de style shell sont autorisés.</p> 698 699 <p>Par exemple, les lignes suivantes n'autoriseront à accéder à un 700 contenu via votre serveur mandataire que les hôtes appartenant à 701 <code>votre-reseau.example.com</code> :</p> 702 703 <div class="example"><p><code> 704 <Proxy *><br /> 705 <span class="indent"> 706 Order Deny,Allow<br /> 707 Deny from all<br /> 708 Allow from votre-reseau.example.com<br /> 709 </span> 710 </Proxy> 711 </code></p></div> 712 713 <p>Dans l'exemple suivant, tous les fichiers du répertoire 714 <code>foo</code> de <code>example.com</code> seront traités par le 715 filtre <code>INCLUDES</code> lorsqu'ils seront envoyés par 716 l'intermédiaire du serveur mandataire :</p> 717 718 <div class="example"><p><code> 719 <Proxy http://example.com/foo/*><br /> 720 <span class="indent"> 721 SetOutputFilter INCLUDES<br /> 722 </span> 723 </Proxy> 724 </code></p></div> 725 726 <div class="note"><h3>Différences avec la section de configuration Location</h3> 727 <p>Une URL d'arrière-plan sera concernée par le conteneur Proxy si 728 elle commence par la <var>url-avec-jokers</var>, même si le 729 dernier segment de chemin de la directive ne correspond qu'à un 730 préfixe de segment dee chemin de l'URL d'arrière-plan. Par exemple, <Proxy 731 http://example.com/foo> correspondra entre autres aux URLs 732 http://example.com/foo, http://example.com/foo/bar, et 733 http://example.com/foobar. La correspondance de l'URL finale 734 diffère du comportement de la section <code class="directive"><a href="../mod/core.html#location"><Location></a></code> qui, pour le cas de cette note, 735 traitera le segment de chemin final comme s'il se terminait par un 736 slash.</p> 737 <p>Pour un contrôle plus fin de la correspondance des URL, voir la 738 directive <code class="directive"><ProxyMatch></code>.</p> 739 </div> 740 741 742 <h3>Voir aussi</h3> 743 <ul> 744 <li><code class="directive"><a href="#proxymatch"><ProxyMatch></a></code></li> 745 </ul> 746 </div> 747 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> 748 <div class="directive-section"><h2><a name="proxybadheader" id="proxybadheader">Directive</a> <a name="ProxyBadHeader" id="ProxyBadHeader">ProxyBadHeader</a></h2> 749 <table class="directive"> 750 <tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Détermine la manière de traiter les lignes d'en-tête 751 incorrectes d'une réponse</td></tr> 752 <tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>ProxyBadHeader IsError|Ignore|StartBody</code></td></tr> 753 <tr><th><a href="directive-dict.html#Default">Défaut:</a></th><td><code>ProxyBadHeader IsError</code></td></tr> 754 <tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur, serveur virtuel</td></tr> 755 <tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr> 756 <tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_proxy</td></tr> 757 <tr><th><a href="directive-dict.html#Compatibility">Compatibilité:</a></th><td>Disponible depuis la version 2.0.44 d'Apache</td></tr> 758 </table> 759 <p>La directive <code class="directive">ProxyBadHeader</code> permet de 760 déterminer le comportement de <code class="module"><a href="../mod/mod_proxy.html">mod_proxy</a></code> lorsqu'il 761 reçoit des lignes d'en-tête de réponse dont la syntaxe n'est pas valide (c'est 762 à dire ne contenant pas de caractère ':') en provenance du serveur 763 original. Les arguments disponibles sont :</p> 764 765 <dl> 766 <dt><code>IsError</code></dt> 767 <dd>Annule la requête et renvoie une réponse de code 502 (mauvaise 768 passerelle). C'est le comportement par défaut.</dd> 769 770 <dt><code>Ignore</code></dt> 771 <dd>Traite les lignes d'en-tête incorrectes comme si elles n'avaient 772 pas été envoyées.</dd> 773 774 <dt><code>StartBody</code></dt> 775 <dd>A la réception de la première ligne d'en-tête incorrecte, les 776 autres en-têtes sont lus et ce qui reste est traité en tant que 777 corps. Ceci facilite la prise en compte des serveurs d'arrière-plan 778 bogués qui oublient d'insérer une ligne vide entre les 779 en-têtes et le corps.</dd> 780 </dl> 781 782 </div> 783 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> 784 <div class="directive-section"><h2><a name="proxyblock" id="proxyblock">Directive</a> <a name="ProxyBlock" id="ProxyBlock">ProxyBlock</a></h2> 785 <table class="directive"> 786 <tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Termes, serveurs ou domaines bloqués par le 787 mandataire</td></tr> 788 <tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>ProxyBlock *|<var>terme</var>|<var>serveur</var>|<var>domaine</var> 789 [<var>terme</var>|<var>serveur</var>|<var>domaine</var>] ...</code></td></tr> 790 <tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur, serveur virtuel</td></tr> 791 <tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr> 792 <tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_proxy</td></tr> 793 </table> 794 <p>La directive <code class="directive">ProxyBlock</code> permet de 795 spécifier une liste de termes, serveurs et/ou domaines, séparés par 796 des espaces. Les requêtes de documents HTTP, HTTPS, FTP vers des 797 sites dont les noms contiennent des termes, noms de serveur ou 798 domaine correspondants seront <em>bloqués</em> par le serveur 799 mandataire. La module proxy va aussi tenter de déterminer les 800 adresses IP des items de la liste qui peuvent correspondre à des 801 noms d'hôtes au cours du démarrage, et les mettra en cache à des 802 fins de comparaisons ultérieures. Ceci peut ralentir le démarrage du 803 serveur.</p> 804 805 <div class="example"><h3>Exemple</h3><p><code> 806 ProxyBlock joes-garage.com some-host.co.uk rocky.wotsamattau.edu 807 </code></p></div> 808 809 <p><code>rocky.wotsamattau.edu</code> aurait aussi correspondu s'il 810 avait été spécifié par son adresse IP.</p> 811 812 <p>Notez que <code>wotsamattau</code> aurait suffi pour correspondre 813 à <code>wotsamattau.edu</code>.</p> 814 815 <p>Notez aussi que</p> 816 817 <div class="example"><p><code> 818 ProxyBlock * 819 </code></p></div> 820 821 <p>bloque les connexions vers tous les sites.</p> 822 823 </div> 824 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> 825 <div class="directive-section"><h2><a name="proxydomain" id="proxydomain">Directive</a> <a name="ProxyDomain" id="ProxyDomain">ProxyDomain</a></h2> 826 <table class="directive"> 827 <tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Nom de domaine par défaut pour les requêtes 828 mandatées</td></tr> 829 <tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>ProxyDomain <var>Domaine</var></code></td></tr> 830 <tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur, serveur virtuel</td></tr> 831 <tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr> 832 <tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_proxy</td></tr> 833 </table> 834 <p>Cette directive n'a d'utilité que pour les serveurs mandataires 835 Apache au sein d'un Intranet. La directive 836 <code class="directive">ProxyDomain</code> permet de spécifier le domaine 837 par défaut auquel le serveur mandataire apache appartient. Si le 838 serveur reçoit une requête pour un hôte sans nom de domaine, il va 839 générer une réponse de redirection vers le même hôte suffixé par le 840 <var>Domaine</var> spécifié.</p> 841 842 <div class="example"><h3>Exemple</h3><p><code> 843 ProxyRemote * http://firewall.example.com:81<br /> 844 NoProxy .example.com 192.168.112.0/21<br /> 845 ProxyDomain .example.com 846 </code></p></div> 847 848 </div> 849 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> 850 <div class="directive-section"><h2><a name="proxyerroroverride" id="proxyerroroverride">Directive</a> <a name="ProxyErrorOverride" id="ProxyErrorOverride">ProxyErrorOverride</a></h2> 851 <table class="directive"> 852 <tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Outrepasser les pages d'erreur pour les contenus 853 mandatés</td></tr> 854 <tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>ProxyErrorOverride On|Off</code></td></tr> 855 <tr><th><a href="directive-dict.html#Default">Défaut:</a></th><td><code>ProxyErrorOverride Off</code></td></tr> 856 <tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur, serveur virtuel</td></tr> 857 <tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr> 858 <tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_proxy</td></tr> 859 <tr><th><a href="directive-dict.html#Compatibility">Compatibilité:</a></th><td>Disponible depuis la version 2.0 d'Apache</td></tr> 860 </table> 861 <p>Cette directive est utile pour les configurations de mandataires 862 inverses, lorsque vous souhaitez que les pages d'erreur envoyées 863 aux utilisateurs finaux présentent un aspect homogène. Elle permet 864 aussi l'inclusion de fichiers (via les SSI de 865 <code class="module"><a href="../mod/mod_include.html">mod_include</a></code>) pour obtenir le code d'erreur et agir 866 en conséquence (le comportement par défaut afficherait la page 867 d'erreur du serveur mandaté, alors que c'est le message d'erreur SSI 868 qui sera affiché si cette directive est à "on").</p> 869 870 <p>Cette directive n'affecte pas le traitement des réponses 871 informatives (1xx), de type succès normal (2xx), ou de redirection 872 (3xx).</p> 873 874 </div> 875 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> 876 <div class="directive-section"><h2><a name="proxyftpdircharset" id="proxyftpdircharset">Directive</a> <a name="ProxyFtpDirCharset" id="ProxyFtpDirCharset">ProxyFtpDirCharset</a></h2> 877 <table class="directive"> 878 <tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Définit le jeu de caractères des listings FTP 879 mandatés</td></tr> 880 <tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>ProxyFtpDirCharset <var>jeu-caractères</var></code></td></tr> 881 <tr><th><a href="directive-dict.html#Default">Défaut:</a></th><td><code>ProxyFtpDirCharset ISO-8859-1</code></td></tr> 882 <tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur, serveur virtuel, répertoire</td></tr> 883 <tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr> 884 <tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_proxy</td></tr> 885 <tr><th><a href="directive-dict.html#Compatibility">Compatibilité:</a></th><td>Disponible depuis la version 2.2.7 d'Apache</td></tr> 886 </table> 887 <p>La directive <code class="directive">ProxyFtpDirCharset</code> permet de 888 définir le jeu de caractères à utiliser pour les listings FTP en 889 HTML générés par <code class="module"><a href="../mod/mod_proxy_ftp.html">mod_proxy_ftp</a></code>.</p> 890 891 </div> 892 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> 893 <div class="directive-section"><h2><a name="proxyiobuffersize" id="proxyiobuffersize">Directive</a> <a name="ProxyIOBufferSize" id="ProxyIOBufferSize">ProxyIOBufferSize</a></h2> 894 <table class="directive"> 895 <tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Détermine la taille du tampon interne de transfert de 896 données</td></tr> 897 <tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>ProxyIOBufferSize <var>octets</var></code></td></tr> 898 <tr><th><a href="directive-dict.html#Default">Défaut:</a></th><td><code>ProxyIOBufferSize 8192</code></td></tr> 899 <tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur, serveur virtuel</td></tr> 900 <tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr> 901 <tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_proxy</td></tr> 902 </table> 903 <p>La directive <code class="directive">ProxyIOBufferSize</code> permet 904 d'ajuster la taille du tampon interne utilisé comme bloc-note pour 905 les transferts de données entre entrée et sortie. La taille doit 906 être au minimum égale à <code>8192</code> octets.</p> 907 908 <p>Lorsqu'on utilise <code class="module"><a href="../mod/mod_proxy_ajp.html">mod_proxy_ajp</a></code>, la valeur 909 minimale est alignée sur la limite de 1024 octets, et les valeurs 910 supérieures à 65536 octets sont ramenées à 65536 octets, comme préconisé 911 par le protocole AJP.</p> 912 913 <p>Dans la plupart des cas, il n'y a aucune raison de modifier cette 914 valeur.</p> 915 916 917 </div> 918 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> 919 <div class="directive-section"><h2><a name="proxymatch" id="proxymatch">Directive</a> <a name="ProxyMatch" id="ProxyMatch"><ProxyMatch></a></h2> 920 <table class="directive"> 921 <tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Conteneur de directives s'appliquant à des ressources 922 mandatées correspondant à une expression rationnelle</td></tr> 923 <tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code><ProxyMatch <var>regex</var>> ...</ProxyMatch></code></td></tr> 924 <tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur, serveur virtuel</td></tr> 925 <tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr> 926 <tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_proxy</td></tr> 927 </table> 928 <p>La directive <code class="directive"><ProxyMatch></code> est 929 identique à la directive <code class="directive"><a href="#proxy"><Proxy></a></code>, à l'exception qu'elle définit 930 les URLs auxquelles elle s'applique en utilisant une <a class="glossarylink" href="../glossary.html#regex" title="voir glossaire">expression rationnelle</a>.</p> 931 932 <h3>Voir aussi</h3> 933 <ul> 934 <li><code class="directive"><a href="#proxy"><Proxy></a></code></li> 935 </ul> 936 </div> 937 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> 938 <div class="directive-section"><h2><a name="proxymaxforwards" id="proxymaxforwards">Directive</a> <a name="ProxyMaxForwards" id="ProxyMaxForwards">ProxyMaxForwards</a></h2> 939 <table class="directive"> 940 <tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Nombre maximum de mandataires à travers lesquelles une 941 requête peut être redirigée</td></tr> 942 <tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>ProxyMaxForwards <var>nombre</var></code></td></tr> 943 <tr><th><a href="directive-dict.html#Default">Défaut:</a></th><td><code>ProxyMaxForwards -1</code></td></tr> 944 <tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur, serveur virtuel</td></tr> 945 <tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr> 946 <tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_proxy</td></tr> 947 <tr><th><a href="directive-dict.html#Compatibility">Compatibilité:</a></th><td>Disponible depuis Apache 2.0 ; comportement par défaut 948 modifié dans 2.2.7</td></tr> 949 </table> 950 <p>La directive <code class="directive">ProxyMaxForwards</code> permet de 951 spécifier le nombre maximum de mandataires à travers lesquels une 952 requête peut passer dans le cas où la la requête ne contient pas 953 d'en-tête <code>Max-Forwards</code>. Ceci permet de se prémunir 954 contre les boucles infinies de mandataires ou contre les attaques de 955 type déni de service.</p> 956 957 <div class="example"><h3>Exemple</h3><p><code> 958 ProxyMaxForwards 15 959 </code></p></div> 960 961 <p>Notez que la définition de la directive 962 <code class="directive">ProxyMaxForwards</code> constitue une violation du 963 protocole HTTP/1.1 (RFC2616), qui interdit à un mandataire de 964 définir <code>Max-Forwards</code> si le client ne l'a pas fait 965 lui-même. Les versions précédentes d'Apache la définissaient 966 systématiquement. Une valeur négative de 967 <code class="directive">ProxyMaxForwards</code>, y compris la valeur par 968 défaut -1, implique un comportement compatible avec le protocole, 969 mais vous expose aux bouclages infinis.</p> 970 971 </div> 972 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> 973 <div class="directive-section"><h2><a name="proxypass" id="proxypass">Directive</a> <a name="ProxyPass" id="ProxyPass">ProxyPass</a></h2> 974 <table class="directive"> 975 <tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Référencer des serveurs distants depuis 976 l'espace d'URLs du serveur local</td></tr> 977 <tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>ProxyPass [<var>chemin</var>] !|<var>url</var> [<var>clé=valeur</var> 978 <var>[clé=valeur</var> ...]] [nocanon] [interpolate]</code></td></tr> 979 <tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur, serveur virtuel, répertoire</td></tr> 980 <tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr> 981 <tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_proxy</td></tr> 982 </table> 983 <p>Cette directive permet référencer des serveurs distants depuis 984 l'espace d'URLs du serveur local ; le serveur 985 local n'agit pas en tant que mandataire au sens conventionnel, mais 986 plutôt comme miroir du serveur distant. Le serveur local est 987 souvent nommé <dfn>mandataire inverse</dfn> ou 988 <dfn>passerelle</dfn>. L'argument <var>chemin</var> est le nom d'un 989 chemin virtuel local ; <var>url</var> est une URL partielle pour le 990 serveur distant et ne doit pas contenir de chaîne d'arguments.</p> 991 992 <div class="warning">En général, la directive <code class="directive"><a href="#proxyrequests">ProxyRequests</a></code> doit être définie à 993 <strong>off</strong> lorsqu'on utilise la directive 994 <code class="directive">ProxyPass</code>.</div> 995 996 <p>Supposons que le serveur local a pour adresse 997 <code>http://example.com/</code> ; alors la ligne</p> 998 999 <div class="example"><p><code> 1000 ProxyPass /miroir/foo/ http://backend.example.com/ 1001 </code></p></div> 1002 1003 <p>va convertir en interne toute requête pour 1004 <code>http://example.com/miroir/foo/bar</code> en une requête 1005 mandatée pour <code>http://backend.example.com/bar</code>.</p> 1006 1007 <div class="warning"> 1008 <p>Si le premier argument se termine par un slash 1009 <strong>/</strong>, il doit en être de même pour le second argument 1010 et vice versa. Dans le cas contraire, il risque de manquer des 1011 slashes nécessaires dans la requête résultante vers le serveur 1012 d'arrière-plan et les résulats ne seront pas ceux attendus. 1013 </p> 1014 </div> 1015 1016 <p>Lorsque cette directive est utilisée dans une section <code class="directive"><a href="../mod/core.html#location"><Location></a></code>, le premier 1017 argument est omis et le répertoire local est obtenu à partir de 1018 l'argument de la directive <code class="directive"><a href="../mod/core.html#location"><Location></a></code>. Il en est de même à l'intérieur 1019 d'une section <code class="directive"><a href="../mod/core.html#locationmatch"><LocationMatch></a></code>, mais le résultat ne sera 1020 probablement pas celui attendu car ProxyPassReverse va interpréter 1021 l'expression rationnelle littéralement comme un chemin ; si besoin 1022 est dans ce cas, définissez la directive ProxyPassReverse en dehors 1023 de la section, ou dans une section <code class="directive"><a href="../mod/core.html#location"><Location></a></code> séparée.</p> 1024 1025 <p>La directive ProxyPass ne peut pas être placée dans une section 1026 <code class="directive"><a href="../mod/core.html#directory"><Directory></a></code> ou 1027 <code class="directive"><a href="../mod/core.html#files"><Files></a></code>.</p> 1028 1029 <p>Si vous avez besoin d'un configuration de mandataire inverse plus 1030 souple, reportez-vous à la documentaion de la directive <code class="directive"><a href="../mod/mod_rewrite.html#rewriterule">RewriteRule</a></code> et son drapeau 1031 <code>[P]</code>.</p> 1032 1033 <p>Le drapeau <code>!</code> permet de soustraire un sous-répertoire 1034 du mandat inverse, comme dans l'exemple suivant :</p> 1035 1036 <div class="example"><p><code> 1037 ProxyPass /miroir/foo/i !<br /> 1038 ProxyPass /miroir/foo http://backend.example.com 1039 </code></p></div> 1040 1041 <p>va mandater toutes les requêtes pour <code>/miroir/foo</code> 1042 vers <code>backend.example.com</code>, <em>sauf</em> les requêtes 1043 pour <code>/miroir/foo/i</code>.</p> 1044 1045 <div class="warning"><h3>Ordre de classement des directives 1046 ProxyPass</h3> 1047 <p>Les directives <code class="directive"><a href="#proxypass">ProxyPass</a></code> et <code class="directive"><a href="#proxypassmatch">ProxyPassMatch</a></code> sont traitées selon 1048 leur ordre d'apparition dans le fichier de configuration. La 1049 première qui correspond s'applique. Ainsi, vous devez classer les 1050 directives <code class="directive"><a href="#proxypass">ProxyPass</a></code> qui 1051 peuvent entrer en conflit, de l'URL la plus longue à la plus 1052 courte. Dans le cas contraire, les directives dont l'URL 1053 constitue une partie du début de l'URL de directives 1054 apparaissant plus loin dans la configuration vont occulter ces 1055 dernières. Notez que tout ceci est en relation avec le partage de 1056 worker.</p> 1057 1058 <p>Pour les mêmes raisons, les exclusions doivent apparaître 1059 <em>avant</em> les directives <code class="directive">ProxyPass</code> 1060 générales.</p> 1061 1062 </div> 1063 1064 <div class="warning"><h3>Ordre d'évaluation des directives ProxyPass et RewriteRule</h3> 1065 <p>Les directives <code class="directive"><a href="../mod/mod_rewrite.html#rewriterule">RewriteRule</a></code> 1066 sont évaluées avant les directives <code class="directive"><a href="#proxypass">ProxyPass</a></code>.</p> 1067 + </div> 1068 1069 <p><strong>ProxyPass <code>clé=valeur</code> Paramètres</strong></p> 1070 1071 <p>Depuis la version 2.1 du serveur HTTP Apache, mod_proxy supporte 1072 les jeux de connexions vers un serveur d'arrière-plan. Ainsi, les 1073 connexions créées à la demande peuvent être conservées dans un 1074 jeu pour une utilisation ultérieure. Les limites de la taille 1075 du jeu de connexions et d'autres paramètres peuvent être définis au 1076 niveau de la directive <code class="directive">ProxyPass</code> via des 1077 arguments <code>clé=valeur</code> décrits dans les 1078 tables ci-dessous.</p> 1079 1080 <p>Par défaut, mod_proxy permettra de conserver le nombre maximum de 1081 connexions pouvant être utilisées simultanément par le processus 1082 enfant concerné du serveur web. Vous pouvez utiliser le paramètre 1083 <code>max</code> pour réduire ce nombre par rapport à la valeur par 1084 défaut. Vous pouvez aussi utiliser le paramètre <code>ttl</code> 1085 pour définir une durée de vie optionnelle ; ainsi, les connections 1086 qui n'ont pas été utilisées au bout de <code>ttl</code> secondes 1087 seront fermées. Le paramètre <code>ttl</code> permet aussi 1088 d'empêcher l'utilisation d'une connexion susceptible d'être fermée 1089 suite à l'expiration de la durée de vie des connexions persistantes 1090 sur le serveur d'arrière-plan.</p> 1091 1092 <p>Le jeu de connexions est maintenu au niveau de chaque processus 1093 enfant du serveur web, et <code>max</code> et les autres paramètres 1094 ne font l'objet d'aucune coordination entre les différents processus 1095 enfants, sauf bien sur dans le cas où un seul processus enfant est 1096 permis par la configuration du module multiprocessus.</p> 1097 1098 <div class="example"><p><code> 1099 ProxyPass /example http://backend.example.com max=20 ttl=120 retry=300 1100 </code></p></div> 1101 1102 <table> 1103 <tr><th>Paramètre</th> 1104 <th>Défaut</th> 1105 <th>Description</th></tr> 1106 <tr><td>min</td> 1107 <td>0</td> 1108 <td>Nombre minimum d'entrées dans le jeu de connexions, sans 1109 rapport avec le nombre réel de connexions. Ne doit être modifié 1110 par rapport à la valeur par défaut que dans des circonstances 1111 spéciales où la mémoire du tas associée aux connexions 1112 d'arrière-plan doit être préallouée ou conservée.</td></tr> 1113 <tr><td>max</td> 1114 <td>1...n</td> 1115 <td>Nombre maximum de connexions permises vers le serveur 1116 d'arrière-plan. La valeur par défaut pour cette limite est le 1117 nombre de threads par processus pour le module multiprocessus 1118 actif. Pour le MPM Prefork, la valeur est toujours 1, alors que 1119 pour les autres, on peut la contrôler via la directive 1120 <code class="directive">ThreadsPerChild</code>.</td></tr> 1121 <tr><td>smax</td> 1122 <td>max</td> 1123 <td>Les entrées conservées du jeu de connexions au dessus de 1124 cette limite sont libérées au cours de certaines opérations si 1125 elles n'ont pas été utilisées au bout de leur durée de vie 1126 définie par le paramètre <code>ttl</code>. Si l'entrée du jeu de 1127 connexions est associée à une connexion, cette dernière sera 1128 alors fermée. Ce paramètre ne doit être modifié par rapport à la 1129 valeur par défaut que dans des circonstances spéciales où les 1130 entrées du jeu de connexions, et toutes connexions associées qui 1131 ont dépassé leur durée de vie doivent être respectivement 1132 libérées ou fermées plus impérativement.</td></tr> 1133 <tr><td>acquire</td> 1134 <td>-</td> 1135 <td>Cette clé permet de définir le délai maximum d'attente pour 1136 une connexion libre dans le jeu de connexions, en millisecondes. 1137 S'il n'y a pas de connexion libre dans le jeu, Apache renverra 1138 l'état <code>SERVER_BUSY</code> au client. 1139 </td></tr> 1140 <tr><td>connectiontimeout</td> 1141 <td>timeout</td> 1142 <td>Délai d'attente d'une connexion en secondes. 1143 La durée en secondes pendant laquelle Apache va attendre pour 1144 l'établissement d'une connexion vers le serveur d'arrière-plan. 1145 Le délai peut être spécifié en millisecondes en ajoutant le 1146 suffixe ms. 1147 </td></tr> 1148 <tr><td>disablereuse</td> 1149 <td>Off</td> 1150 <td>Vous pouvez utiliser cette clé pour forcer mod_proxy à 1151 fermer immédiatement une connexion vers le serveur 1152 d'arrière-plan après utilisation, et ainsi désactiver le jeu de 1153 connexions permanentes vers ce serveur. Ceci peut s'avérer utile 1154 dans des situations où un pare-feu situé entre Apache et le 1155 serveur d'arrière-plan (quelque soit le protocole) interrompt 1156 des connexions de manière silencieuse, ou lorsque le serveur 1157 d'arrière-plan lui-même est accessible par rotation de DNS 1158 (round-robin DNS). Pour désactiver la réutilisation du jeu de 1159 connexions, définissez cette clé à <code>On</code>. 1160 </td></tr> 1161 <tr><td>flushpackets</td> 1162 <td>off</td> 1163 <td>Permet de définir si le module mandataire doit vider 1164 automatiquement le tampon de sortie après chaque tronçon de 1165 données. 'off' signifie que le tampon sera vidé si nécessaire, 1166 'on' que le tampon sera vidé après chaque envoi d'un 1167 tronçon de données, et 'auto' que le tampon sera vidé après un 1168 délai de 'flushwait' millisecondes si aucune entrée n'est reçue. 1169 Actuellement, cette clé n'est supportée que par AJP. 1170 </td></tr> 1171 <tr><td>flushwait</td> 1172 <td>10</td> 1173 <td>Le délai d'attente pour une entrée additionnelle, en 1174 millisecondes, avant le vidage du tampon en sortie dans le cas 1175 où 'flushpackets' est à 'auto'. 1176 </td></tr> 1177 <tr><td>keepalive</td> 1178 <td>Off</td> 1179 <td><p>Cette clé doit être utilisée lorsque vous avez un pare-feu 1180 entre Apache httpd et le serveur d'arrière-plan, et si ce dernier tend 1181 à interrompre les connexions inactives. Cette clé va faire en 1182 sorte que le système d'exploitation envoie des messages 1183 <code>KEEP_ALIVE</code> sur chacune des connexions inactives et 1184 ainsi éviter la fermeture de la connexion par le pare-feu. 1185 Pour conserver les connexions persistantes, definissez cette 1186 propriété à <code>On</code>.</p> 1187 <p>La fréquence de vérification des connexions TCP persistantes 1188 initiale et subséquentes dépend de la configuration globale de l'OS, 1189 et peut atteindre 2 heures. Pour être utile, la fréquence configurée 1190 dans l'OS doit être inférieure au seuil utilisé par le pare-feu.</p> 1191 </td></tr> 1192 <tr><td>lbset</td> 1193 <td>0</td> 1194 <td>Définit le groupe de répartition de charge dont le serveur cible 1195 est membre. Le répartiteur de charge va essayer tous les membres 1196 d'un groupe de répartition de charge de numéro inférieur avant 1197 d'essayer ceux dont le groupe possède un numéro supérieur. 1198 </td></tr> 1199 <tr><td>ping</td> 1200 <td>0</td> 1201 <td>Avec la clé ping, le serveur web envoie une requête 1202 <code>CPING</code> sur la connexion ajp13 avant de rediriger une 1203 requête. La valeur correspond au délai d'attente de la réponse 1204 <code>CPONG</code>. Cette fonctionnalité a été ajoutée afin de 1205 pallier aux problèmes de blocage et de surcharge des serveurs 1206 Tomcat, et nécessite le support de ping/pong ajp13 qui a été 1207 implémenté dans Tomcat 3.3.2+, 4.1.28+ et 5.0.13+. Le trafic 1208 réseau peut s'en trouver augmenté en fonctionnement normal, ce 1209 qui peut poser problème, mais peut s'en trouver diminué dans les 1210 cas où les noeuds de cluster sont arrêtés ou surchargés. Cette 1211 clé n'est actuellement utilisable qu'avec AJP. Le délai peut 1212 aussi être défini en millisecondes en ajoutant le suffixe 1213 ms. 1214 </td></tr> 1215 <tr><td>loadfactor</td> 1216 <td>1</td> 1217 <td>Facteur de charge du serveur cible à utiliser avec les 1218 membres d'un groupe de répartition de charge. Il s'agit d'un 1219 nombre entre 1 et 100 définissant le facteur de charge appliqué 1220 au serveur cible. 1221 </td></tr> 1222 <tr><td>redirect</td> 1223 <td>-</td> 1224 <td>Route pour la redirection du serveur cible. Cette valeur est en 1225 général définie dynamiquement pour permettre une suppression 1226 sécurisée du noeud du cluster. Si cette clé est définie, toutes 1227 les requêtes sans identifiant de session seront redirigées vers 1228 le membre de groupe de répartition de charge dont la route 1229 correspond à la valeur de la clé. 1230 </td></tr> 1231 <tr><td>retry</td> 1232 <td>60</td> 1233 <td>Délai entre deux essais du serveur cible du jeu de connexions en 1234 secondes. Si le serveur cible du jeu de connexions vers le serveur 1235 d'arrière-plan est dans un état d'erreur, Apache ne redirigera 1236 pas de requête vers ce serveur avant l'expiration du délai 1237 spécifié. Ceci permet d'arrêter le serveur d'arrière-plan pour 1238 maintenance, et de le remettre en ligne plus tard. Une valeur de 1239 0 signifie toujours essayer les serveurs cibles dans un état d'erreur 1240 sans délai. 1241 </td></tr> 1242 <tr><td>route</td> 1243 <td>-</td> 1244 <td>La route du serveur cible lorsqu'il est utilisé au sein d'un 1245 répartiteur de charge. La route est une valeur ajoutée à 1246 l'identifiant de session. 1247 </td></tr> 1248 <tr><td>status</td> 1249 <td>-</td> 1250 <td>Valeur constituée d'une simple lettre et définissant l'état 1251 initial de ce serveur cible : 'D' correspond à "désactivé", 'S' à 1252 "arrêté", 'I' à "erreurs ignorées", 'H' à "interruption à chaud" 1253 et 'E' à "erreur". Une valeur d'état peut être définie (ce qui 1254 correspond au comportement par défaut) en préfixant la valeur 1255 par '+', ou annulée en préfixant la valeur par '-'. Ainsi, la 1256 valeur 'S-E' définit l'état de ce serveur cible à "arrêté" et supprime 1257 le drapeau "en-erreur". 1258 </td></tr> 1259 <tr><td>timeout</td> 1260 <td><code class="directive"><a href="#proxytimeout">ProxyTimeout</a></code></td> 1261 <td>Délai d'attente de la connexion en secondes. Le nombre de 1262 secondes pendant lesquelles Apache attend l'envoi de 1263 données vers le serveur d'arrière-plan. 1264 </td></tr> 1265 <tr><td>ttl</td> 1266 <td>-</td> 1267 <td>Durée de vie des connexions inactives et des entrées 1268 associées du jeu de connexions. Lorsque cette limite est 1269 atteinte, la connexion concernée ne sera plus utilisée ; elle 1270 sera ensuite fermée au bout d'un certain temps. 1271 </td></tr> 1272 1273 </table> 1274 1275 <p>Si l'URL de la directive <code class="directive">ProxyPass</code> débute par 1276 <code>balancer://</code> (par exemple: 1277 <code>balancer://cluster/</code>, toute information relative au 1278 chemin est ignorée), alors un serveur cible virtuel ne communiquant pas 1279 réellement avec le serveur d'arrière-plan sera créé. Celui-ci sera 1280 en fait responsable de la gestion de plusieurs serveurs cibles "réels". Dans 1281 ce cas, un jeu de paramètres particuliers s'applique à ce serveur cible 1282 virtuel. Voir <code class="module"><a href="../mod/mod_proxy_balancer.html">mod_proxy_balancer</a></code> pour plus 1283 d'informations à propos du fonctionnement du répartiteur de 1284 charge. 1285 </p> 1286 <table> 1287 <tr><th>Paramètre</th> 1288 <th>Défaut</th> 1289 <th>Description</th></tr> 1290 <tr><td>lbmethod</td> 1291 <td>byrequests</td> 1292 <td>Méthode de répartition de charge utilisée. Permet de 1293 sélectionner la méthode de planification de la répartition de 1294 charge à utiliser. La valeur est soit <code>byrequests</code>, 1295 pour effectuer un décompte de requêtes pondérées, soit 1296 <code>bytraffic</code>, pour effectuer une répartition en 1297 fonction du décompte des octets transmis, soit 1298 <code>bybusyness</code> (à partir de la version 2.2.10 du 1299 serveur HTTP Apache), pour effectuer une répartition en 1300 fonction des requêtes en attente. La valeur par défaut est 1301 <code>byrequests</code>. 1302 </td></tr> 1303 <tr><td>maxattempts</td> 1304 <td>1 de moins que le nombre de workers, ou 1 avec un seul 1305 worker</td> 1306 <td>Nombre maximum d'échecs avant abandon. 1307 </td></tr> 1308 <tr><td>nofailover</td> 1309 <td>Off</td> 1310 <td>Si ce paramètre est défini à <code>On</code>, la session va 1311 s'interrompre si le serveur cible est dans un état d'erreur ou 1312 désactivé. Définissez ce paramètre à On si le serveur 1313 d'arrière-plan ne supporte pas la réplication de session. 1314 </td></tr> 1315 <tr><td>stickysession</td> 1316 <td>-</td> 1317 <td>Nom de session persistant du répartiteur. La valeur est 1318 généralement du style <code>JSESSIONID</code> ou 1319 <code>PHPSESSIONID</code>, et dépend du serveur d'application 1320 d'arrière-plan qui supporte les sessions. Si le serveur 1321 d'application d'arrière-plan utilise des noms différents pour 1322 les cookies et les identifiants codés d'URL (comme les 1323 conteneurs de servlet), séparez-les par le caractère '|'. La 1324 première partie contient le cookie et la seconde le chemin. 1325 </td></tr> 1326 <tr><td>scolonpathdelim</td> 1327 <td>Off</td> 1328 <td>Si ce paramètre est défini à <code>On</code>, le caractère 1329 ';' sera utilisé comme séparateur de chemin de session 1330 persistante additionnel. Ceci permet principalement de simuler 1331 le comportement de mod_jk lorsqu'on utilise des chemins du style 1332 <code>JSESSIONID=6736bcf34;foo=aabfa</code>. 1333 </td></tr> 1334 <tr><td>timeout</td> 1335 <td>0</td> 1336 <td>Délai du répartiteur en secondes. Si ce paramètre est 1337 défini, sa valeur correspond à la durée maximale d'attente pour 1338 un serveur cible libre. Le comportement par défaut est de ne pas 1339 attendre. 1340 </td></tr> 1341 <tr><td>failonstatus</td> 1342 <td>-</td> 1343 <td>Un code ou une liste de codes d'état HTTP séparés par des 1344 virgules. S'il est défini, ce paramètre va forcer le worker dans 1345 un état d'erreur lorsque le serveur d'arrière-plan retounera un 1346 code d'état spécifié dans la liste. Le rétablissement du worker 1347 est le même qu'avec les autres erreurs de worker. 1348 Disponible à partir de la version 2.2.17 du serveur HTTP Apache. 1349 </td></tr> 1350 <tr><td>failontimeout</td> 1351 <td>Off</td> 1352 <td>Si ce paramètre est défini à "On", un délai d'attente 1353 dépassé en entrée/sortie après envoi d'une requête au serveur 1354 d'arrière-plan va mettre le processus en état d'erreur. La 1355 sortie de cet état d'erreur se passe de la même façon que pour 1356 les autres erreurs. Disponible à partir de la version 2.2.25 du 1357 serveur HTTP Apache. 1358 </td></tr> 1359 <tr><td>forcerecovery</td> 1360 <td>On</td> 1361 <td>Force la récupération immédiate de tous les membres du 1362 répartiteur sans tenir compte de leur paramètre de nouvel essai 1363 si tous les membres du répartiteur sont dans un état d'erreur. 1364 Dans certains cas cependant, un serveur d'arrière-plan déjà 1365 surchargé peut voir ses problèmes s'aggraver si la récupération 1366 de tous les membres du répartiteur est forcée sans tenir compte 1367 de leur paramètre de nouvel essai. Dans ce cas, définissez ce 1368 paramètre à <code>Off</code>. Disponible depuis la version 1369 2.2.23 du serveur HTTP Apache. 1370 </td></tr> 1371 1372 </table> 1373 <p>Exemple de configuration d'un répartiteur</p> 1374 <div class="example"><p><code> 1375 ProxyPass /zone-speciale http://special.example.com smax=5 max=10<br /> 1376 ProxyPass / balancer://mon-cluster/ stickysession=JSESSIONID|jsessionid nofailover=On<br /> 1377 <Proxy balancer://mon-cluster><br /> 1378 <span class="indent"> 1379 BalancerMember ajp://1.2.3.4:8009<br /> 1380 BalancerMember ajp://1.2.3.5:8009 loadfactor=20<br /> 1381 # Serveur moins puissant ; faites-lui traiter moins de requêtes,<br /> 1382 BalancerMember ajp://1.2.3.6:8009 loadfactor=5<br /> 1383 </span> 1384 </Proxy> 1385 </code></p></div> 1386 1387 <p>Configuration d'un serveur cible de réserve qui ne sera utilisé que si 1388 aucun autre serveur cible n'est disponible</p> 1389 <div class="example"><p><code> 1390 ProxyPass / balancer://hotcluster/ <br /> 1391 <Proxy balancer://hotcluster><br /> 1392 <span class="indent"> 1393 BalancerMember ajp://1.2.3.4:8009 loadfactor=1<br /> 1394 BalancerMember ajp://1.2.3.5:8009 loadfactor=2<br /> 1395 # La ligne suivante configure le serveur cible de réserve<br /> 1396 BalancerMember ajp://1.2.3.6:8009 status=+H<br /> 1397 ProxySet lbmethod=bytraffic 1398 </span> 1399 </Proxy> 1400 </code></p></div> 1401 1402 <p><strong>Mots-clés additionnels de ProxyPass</strong></p> 1403 1404 <p>Normalement, mod_proxy va mettre sous leur forme canonique les 1405 URLs traitées par ProxyPass. Mais ceci peut être incompatible avec 1406 certains serveurs d'arrière-plan, et en particulier avec ceux qui 1407 utilisent <var>PATH_INFO</var>. Le mot-clé optionnel 1408 <var>nocanon</var> modifie ce comportement et permet de transmettre 1409 le chemin d'URL sous sa forme brute au serveur d'arrière-plan. Notez 1410 que ceci peut affecter la sécurité de votre serveur d'arrière-plan, 1411 car la protection limitée contre les attaques à base d'URL que 1412 fournit le mandataire est alors supprimée.</p> 1413 1414 <p>Le mot-clé optionnel <var>interpolate</var> (disponible depuis 1415 httpd 2.2.9), en combinaison avec la directive 1416 <code class="directive">ProxyPassInterpolateEnv</code>, permet à ProxyPass 1417 d'interpoler les variables d'environnement à l'aide de la syntaxe 1418 <var>${VARNAME}</var>. Notez que de nombreuses variables 1419 d'environnement standard dérivées de CGI n'existeront pas lorsque 1420 l'interpolation se produit ; vous devrez alors encore avoir avoir 1421 recours à <code class="module"><a href="../mod/mod_rewrite.html">mod_rewrite</a></code> pour des règles 1422 complexes. Notez aussi que l'interpolation n'est pas supportée dans 1423 la partie protocole d'une URL. La détermination dynamique du 1424 protocole peut être effectuée à l'aide de 1425 <code class="module"><a href="../mod/mod_rewrite.html">mod_rewrite</a></code> comme dans l'exemple suivant :</p> 1426 1427 <pre class="prettyprint lang-config">RewriteEngine On 1428 1429 RewriteCond %{HTTPS} =off 1430 RewriteRule . - [E=protocol:http] 1431 RewriteCond %{HTTPS} =on 1432 RewriteRule . - [E=protocol:https] 1433 1434 RewriteRule ^/mirror/foo/(.*) %{ENV:protocol}://backend.example.com/$1 [P] 1435 ProxyPassReverse /mirror/foo/ http://backend.example.com/ 1436 ProxyPassReverse /mirror/foo/ https://backend.example.com/</pre> 1437 1438 1439 1440 </div> 1441 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> 1442 <div class="directive-section"><h2><a name="proxypassinterpolateenv" id="proxypassinterpolateenv">Directive</a> <a name="ProxyPassInterpolateEnv" id="ProxyPassInterpolateEnv">ProxyPassInterpolateEnv</a></h2> 1443 <table class="directive"> 1444 <tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Active l'interpolation des variables d'environnement dans 1445 les configurations de mandataires inverses</td></tr> 1446 <tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>ProxyPassInterpolateEnv On|Off</code></td></tr> 1447 <tr><th><a href="directive-dict.html#Default">Défaut:</a></th><td><code>ProxyPassInterpolateEnv Off</code></td></tr> 1448 <tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur, serveur virtuel, répertoire</td></tr> 1449 <tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr> 1450 <tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_proxy</td></tr> 1451 <tr><th><a href="directive-dict.html#Compatibility">Compatibilité:</a></th><td>Disponible depuis la version 2.2.9 d'Apache</td></tr> 1452 </table> 1453 <p>Cette directive, ainsi que l'argument <var>interpolate</var> des 1454 directives <code class="directive">ProxyPass</code>, 1455 <code class="directive">ProxyPassReverse</code>, 1456 <code class="directive">ProxyPassReverseCookieDomain</code> et 1457 <code class="directive">ProxyPassReverseCookiePath</code>, permet de 1458 configurer dynamiquement un mandataire inverse à l'aide de 1459 variables d'environnement, ces dernières pouvant être définies par un 1460 autre module comme <code class="module"><a href="../mod/mod_rewrite.html">mod_rewrite</a></code>. Elle affecte les 1461 directives <code class="directive">ProxyPass</code>, 1462 <code class="directive">ProxyPassReverse</code>, 1463 <code class="directive">ProxyPassReverseCookieDomain</code>, et 1464 <code class="directive">ProxyPassReverseCookiePath</code>, en leur indiquant 1465 de remplacer la chaîne <code>${nom_var}</code> dans les directives 1466 de configuration par la valeur de la variable d'environnement 1467 <code>nom_var</code> (si l'option <var>interpolate</var> est 1468 spécifiée).</p> 1469 <p>Conservez cette directive à off (pour les performances du 1470 serveur), sauf si vous en avez réellement besoin.</p> 1471 1472 </div> 1473 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> 1474 <div class="directive-section"><h2><a name="proxypassmatch" id="proxypassmatch">Directive</a> <a name="ProxyPassMatch" id="ProxyPassMatch">ProxyPassMatch</a></h2> 1475 <table class="directive"> 1476 <tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Fait correspondre des serveurs distants dans l'espace d'URL 1477 du serveur local en utilisant des expressions rationnelles</td></tr> 1478 <tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>ProxyPassMatch [<var>regex</var>] !|<var>url</var> 1479 [<var>clé=valeur</var> 1480 <var>[clé=valeur</var> ...]]</code></td></tr> 1481 <tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur, serveur virtuel, répertoire</td></tr> 1482 <tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr> 1483 <tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_proxy</td></tr> 1484 <tr><th><a href="directive-dict.html#Compatibility">Compatibilité:</a></th><td>Disponible depuis la version 2.2.5 1485 d'Apache</td></tr> 1486 </table> 1487 <p>Cette directive est identique à la directive <code class="directive"><a href="#proxypass">ProxyPass</a></code>, mais fait usage des 1488 expressions rationnelles, au lieu d'une simple comparaison de 1489 préfixes. L'expression rationnelle spécifiée est comparée à 1490 l'<var>url</var>, et si elle correspond, le serveur va substituer 1491 toute correspondance entre parenthèses dans la chaîne donnée et 1492 l'utiliser comme nouvelle <var>url</var>.</p> 1493 1494 <p>Supposons que le serveur local a pour adresse 1495 <code>http://example.com/</code> ; alors</p> 1496 1497 <div class="example"><p><code> 1498 ProxyPassMatch ^(/.*\.gif)$ http://backend.example.com$1 1499 </code></p></div> 1500 1501 <p>va provoquer la conversion interne de la requête locale 1502 <code>http://example.com/foo/bar.gif</code> en une requête mandatée 1503 pour <code>http://backend.example.com/foo/bar.gif</code>.</p> 1504 1505 <div class="note"><h3>Note</h3> 1506 <p>L'argument URL doit pouvoir être interprété en tant qu'URL 1507 <em>avant</em> les substitutions d'expressions rationnelles (et 1508 doit aussi l'être après). Ceci limite les correspondances que vous 1509 pouvez utiliser. Par exemple, si l'on avait utilisé</p> 1510 <div class="example"><p><code> 1511 ProxyPassMatch ^(/.*\.gif)$ http://backend.example.com:8000$1 1512 </code></p></div> 1513 <p>dans l'exemple précédent, nous aurions provoqué une erreur de 1514 syntaxe au démarrage du serveur. C'est une bogue (PR 46665 dans 1515 ASF bugzilla), et il est possible de la contourner en reformulant 1516 la correspondance :</p> 1517 <div class="example"><p><code> 1518 ProxyPassMatch ^/(.*\.gif)$ http://backend.example.com:8000/$1 1519 </code></p></div> 1520 </div> 1521 1522 <p>Le drapeau <code>!</code> vous permet de ne pas mandater un 1523 sous-répertoire donné.</p> 1524 1525 <p>Lorsque cette directive se situe à l'intérieur d'une section 1526 <code class="directive"><a href="../mod/core.html#locationmatch"><LocationMatch></a></code>, 1527 le premier argument est omis et l'expression rationnelle est obtenue 1528 à partir de la directive <code class="directive"><a href="../mod/core.html#locationmatch"><LocationMatch></a></code>.</p> 1529 1530 <p>Si vous avez besoin d'une configuration de mandataire inverse 1531 plus flexible, reportez-vous à la directive <code class="directive"><a href="../mod/mod_rewrite.html#rewriterule">RewriteRule</a></code> avec le drapeau 1532 <code>[P]</code>.</p> 1533 1534 <div class="warning"> 1535 <h3>Avertissement à propos de la sécurité</h3> 1536 <p>Lors de la construction de l'URL cible de la règle, il convient 1537 de prendre en compte l'impact en matière de sécurité qu'aura le 1538 fait de permettre au client d'influencer le jeu d'URLs pour 1539 lesquelles votre serveur agira en tant que mandataire. 1540 Assurez-vous que la partie protocole://nom-serveur de l'URL soit 1541 fixe, ou ne permette pas au client de l'influencer induement.</p> 1542 </div> 1543 1544 </div> 1545 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> 1546 <div class="directive-section"><h2><a name="proxypassreverse" id="proxypassreverse">Directive</a> <a name="ProxyPassReverse" id="ProxyPassReverse">ProxyPassReverse</a></h2> 1547 <table class="directive"> 1548 <tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Ajuste l'URL dans les en-têtes de la réponse HTTP envoyée 1549 par un serveur mandaté en inverse</td></tr> 1550 <tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>ProxyPassReverse [<var>chemin</var>] <var>url</var> 1551 [<var>interpolate</var>]</code></td></tr> 1552 <tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur, serveur virtuel, répertoire</td></tr> 1553 <tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr> 1554 <tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_proxy</td></tr> 1555 </table> 1556 <p>Cette directive permet de faire en sorte qu'Apache ajuste l'URL 1557 dans les en-têtes <code>Location</code>, 1558 <code>Content-Location</code> et <code>URI</code> des réponses de 1559 redirection HTTP. Ceci est essentiel lorsqu'Apache est utilisé en 1560 tant que mandataire inverse (ou passerelle), afin d'éviter de 1561 court-circuiter le mandataire inverse suite aux redirections HTTP 1562 sur le serveur d'arrière-plan qui restent derrière le mandataire 1563 inverse.</p> 1564 1565 <p>Seuls les en-têtes de réponse HTTP spécialement mentionnés 1566 ci-dessus seront réécrits. Apache ne réécrira ni les autres en-têtes 1567 de réponse, ni les références d'URLs dans les pages HTML. Cela 1568 signifie que dans le cas où un contenu mandaté contient des 1569 références à des URLs absolues, elles court-circuiteront le 1570 mandataire. Le module <a href="http://apache.webthing.com/mod_proxy_html/">mod_proxy_html</a> 1571 de Nick Kew est un module tiers qui parcourt le code HTML et réécrit 1572 les références d'URL.</p> 1573 1574 <p><var>chemin</var> est le nom d'un chemin virtuel local. 1575 <var>url</var> est une URL partielle pour le serveur distant. Ces 1576 paramètres s'utilisent de la même façon qu'avec la directive <code class="directive"><a href="#proxypass">ProxyPass</a></code>.</p> 1577 1578 <p>Supposons par exemple que le serveur local a pour adresse 1579 <code>http://example.com/</code> ; alors</p> 1580 1581 <div class="example"><p><code> 1582 ProxyPass /miroir/foo/ http://backend.example.com/<br /> 1583 ProxyPassReverse /miroir/foo/ http://backend.example.com/<br /> 1584 ProxyPassReverseCookieDomain backend.example.com public.example.com<br /> 1585 ProxyPassReverseCookiePath / /miroir/foo/ 1586 </code></p></div> 1587 1588 <p>ne va pas seulement provoquer la conversion interne d'une requête 1589 locale pour <code>http://example.com/miroir/foo/bar</code> en une 1590 requête mandatée pour <code>http://backend.example.com/bar</code> 1591 (la fonctionnalité fournie par <code>ProxyPass</code>). Il va 1592 aussi s'occuper des redirections que le serveur 1593 <code>backend.example.com</code> envoie lorsqu'il redirige 1594 <code>http://backend.example.com/bar</code> vers 1595 <code>http://backend.example.com/quux</code>. Apache 1596 corrige ceci en <code>http://example.com/miroir/foo/quux</code> 1597 avant de faire suivre la redirection HTTP au client. Notez que le 1598 nom d'hôte utilisé pour construire l'URL est choisi en respectant la 1599 définition de la directive <code class="directive"><a href="../mod/core.html#usecanonicalname">UseCanonicalName</a></code>.</p> 1600 1601 <p>Notez que la directive <code class="directive">ProxyPassReverse</code> 1602 peut aussi être utilisée en conjonction avec la 1603 fonctionnalité de mandataire (<code>RewriteRule ... [P]</code>) du module 1604 <code class="module"><a href="../mod/mod_rewrite.html">mod_rewrite</a></code>, car elle ne dépend pas d'une directive 1605 <code class="directive"><a href="#proxypass">ProxyPass</a></code> 1606 correspondante.</p> 1607 1608 <p>Le mot-clé optionnel <var>interpolate</var> (disponible depuis 1609 httpd 2.2.9), utilisé en combinaison avec la directive 1610 <code class="directive">ProxyPassInterpolateEnv</code>, permet 1611 l'interpolation des variables d'environnement spécifiées en 1612 utilisant le format <var>${VARNAME}</var> Notez que l'interpolation 1613 n'est pas supportée dans la partie protocole d'une URL. 1614 </p> 1615 1616 <p>Lorsque cette directive est utilisée dans une section <code class="directive"><a href="../mod/core.html#location"><Location></a></code>, le premier 1617 argument est omis et le répertoire local est obtenu à partir de 1618 l'argument de la directive <code class="directive"><a href="../mod/core.html#location"><Location></a></code>. Il en est de même à l'intérieur 1619 d'une section <code class="directive"><a href="../mod/core.html#locationmatch"><LocationMatch></a></code>, mais le résultat ne 1620 correspondra probablement pas à ce que vous attendez, car 1621 ProxyPassReverse interprète l'expression rationnelle littéralement 1622 comme un chemin ; si nécessaire dans cette situation, spécifiez la 1623 directive ProxyPassReverse en dehors de la section, ou dans une 1624 section <code class="directive"><a href="../mod/core.html#location"><Location></a></code> 1625 séparée. 1626 </p> 1627 1628 <p>Cette directive ne peut pas être placée dans une section 1629 <code class="directive"><a href="../mod/core.html#directory"><Directory></a></code> ou 1630 <code class="directive"><a href="../mod/core.html#files"><Files></a></code>.</p> 1631 1632 </div> 1633 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> 1634 <div class="directive-section"><h2><a name="proxypassreversecookiedomain" id="proxypassreversecookiedomain">Directive</a> <a name="ProxyPassReverseCookieDomain" id="ProxyPassReverseCookieDomain">ProxyPassReverseCookieDomain</a></h2> 1635 <table class="directive"> 1636 <tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Ajuste la chaîne correspondant au domaine dans les en-têtes 1637 Set-Cookie en provenance d'un serveur mandaté</td></tr> 1638 <tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>ProxyPassReverseCookieDomain <var>domaine-interne</var> 1639 <var>domaine-public</var> [<var>interpolate</var>]</code></td></tr> 1640 <tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur, serveur virtuel, répertoire</td></tr> 1641 <tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr> 1642 <tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_proxy</td></tr> 1643 </table> 1644 <p>L'utilisation de cette directive est similaire à celle de la 1645 directive <code class="directive"><a href="#proxypassreverse">ProxyPassReverse</a></code>, 1646 mais au lieu de réécrire des en-têtes qui contiennent des URLs, elle 1647 réécrit la chaîne correspondant au domaine dans les en-têtes 1648 <code>Set-Cookie</code>.</p> 1649 1650 </div> 1651 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> 1652 <div class="directive-section"><h2><a name="proxypassreversecookiepath" id="proxypassreversecookiepath">Directive</a> <a name="ProxyPassReverseCookiePath" id="ProxyPassReverseCookiePath">ProxyPassReverseCookiePath</a></h2> 1653 <table class="directive"> 1654 <tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Ajuste la chaîne correspondant au chemin dans les en-têtes 1655 Set-Cookie en provenance d'un serveur mandaté</td></tr> 1656 <tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>ProxyPassReverseCookiePath <var>chemin-interne</var> 1657 <var>chemin-public</var> [<var>interpolate</var>]</code></td></tr> 1658 <tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur, serveur virtuel, répertoire</td></tr> 1659 <tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr> 1660 <tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_proxy</td></tr> 1661 </table> 1662 <p> 1663 Cette directive s'avère utile en conjonction avec la directive 1664 <code class="directive"><a href="#proxypassreverse">ProxyPassReverse</a></code> dans les 1665 situations où les chemins d'URL d'arrière-plan correspondent à des 1666 chemins publics sur le mandataire inverse. Cette directive permet de 1667 réécrire la chaîne <code>path</code> dans les en-têtes 1668 <code>Set-Cookie</code>. Si le début du chemin du cookie correspond à 1669 <var>chemin-interne</var>, le chemin du cookie sera remplacé par 1670 <var>chemin-public</var>. 1671 </p><p> 1672 Dans l'exemple fourni avec la directive <code class="directive"><a href="#proxypassreverse">ProxyPassReverse</a></code>, la directive :</p> 1673 <div class="example"><p><code> 1674 ProxyPassReverseCookiePath / /mirror/foo/ 1675 </code></p></div> 1676 <p>va réécrire un cookie possédant un chemin d'arrière-plan <code>/</code> 1677 (ou <code>/example</code> ou en fait tout chemin) 1678 en <code>/mirror/foo/</code>.. 1679 </p> 1680 1681 </div> 1682 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> 1683 <div class="directive-section"><h2><a name="proxypreservehost" id="proxypreservehost">Directive</a> <a name="ProxyPreserveHost" id="ProxyPreserveHost">ProxyPreserveHost</a></h2> 1684 <table class="directive"> 1685 <tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Utilise l'en-tête de requête entrante Host pour la requête 1686 du mandataire</td></tr> 1687 <tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>ProxyPreserveHost On|Off</code></td></tr> 1688 <tr><th><a href="directive-dict.html#Default">Défaut:</a></th><td><code>ProxyPreserveHost Off</code></td></tr> 1689 <tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur, serveur virtuel</td></tr> 1690 <tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr> 1691 <tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_proxy</td></tr> 1692 <tr><th><a href="directive-dict.html#Compatibility">Compatibilité:</a></th><td>Disponible depuis la version 2.0.31 d'Apache.</td></tr> 1693 </table> 1694 <p>Lorsqu'elle est activée, cette directive va transmettre l'en-tête 1695 Host: de la requête entrante vers le serveur mandaté, au lieu du nom 1696 d'hôte spécifié par la directive 1697 <code class="directive">ProxyPass module="mod_proxy"</code>.</p> 1698 1699 <p>Cette directive est habituellement définie à <code>Off</code>. 1700 Elle est principalement utile dans les configurations particulières 1701 comme l'hébergement virtuel mandaté en masse à base de nom, où 1702 l'en-tête Host d'origine doit être évalué par le serveur 1703 d'arrière-plan.</p> 1704 1705 </div> 1706 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> 1707 <div class="directive-section"><h2><a name="proxyreceivebuffersize" id="proxyreceivebuffersize">Directive</a> <a name="ProxyReceiveBufferSize" id="ProxyReceiveBufferSize">ProxyReceiveBufferSize</a></h2> 1708 <table class="directive"> 1709 <tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Taille du tampon réseau pour les connexions mandatées HTTP 1710 et FTP</td></tr> 1711 <tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>ProxyReceiveBufferSize <var>octets</var></code></td></tr> 1712 <tr><th><a href="directive-dict.html#Default">Défaut:</a></th><td><code>ProxyReceiveBufferSize 0</code></td></tr> 1713 <tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur, serveur virtuel</td></tr> 1714 <tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr> 1715 <tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_proxy</td></tr> 1716 </table> 1717 <p>La directive <code class="directive">ProxyReceiveBufferSize</code> permet 1718 de spécifier une taille de tampon réseau explicite (TCP/IP) pour les 1719 connexions mandatées HTTP et FTP, afin d'améliorer le débit de 1720 données. Elle doit être supérieure à <code>512</code> ou définie à 1721 <code>0</code> pour indiquer que la taille de tampon par défaut du 1722 système doit être utilisée.</p> 1723 1724 <div class="example"><h3>Exemple</h3><p><code> 1725 ProxyReceiveBufferSize 2048 1726 </code></p></div> 1727 1728 </div> 1729 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> 1730 <div class="directive-section"><h2><a name="proxyremote" id="proxyremote">Directive</a> <a name="ProxyRemote" id="ProxyRemote">ProxyRemote</a></h2> 1731 <table class="directive"> 1732 <tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Mandataire distant à utiliser pour traiter certaines 1733 requêtes</td></tr> 1734 <tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>ProxyRemote <var>comparaison</var> <var>serveur-distant</var></code></td></tr> 1735 <tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur, serveur virtuel</td></tr> 1736 <tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr> 1737 <tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_proxy</td></tr> 1738 </table> 1739 <p>Cette directive permet de définir des mandataires distants pour 1740 ce mandataire. <var>comparaison</var> est soit le nom d'un protocole 1741 que supporte le serveur distant, soit une URL partielle pour 1742 laquelle le serveur distant devra être utilisé, soit <code>*</code> 1743 pour indiquer que le serveur distant doit être utilisé pour toutes 1744 les requêtes. <var>serveur-distant</var> est une URL partielle 1745 correspondant au serveur distant. Syntaxe : </p> 1746 1747 <div class="example"><p><code> 1748 <dfn>serveur-distant</dfn> = 1749 <var>protocole</var>://<var>nom-serveur</var>[:<var>port</var>] 1750 </code></p></div> 1751 1752 <p><var>protocole</var> est effectivement le protocole à utiliser 1753 pour communiquer avec le serveur distant ; ce module ne supporte que 1754 <code>http</code> et <code>https</code>. Avec <code>https</code>, 1755 les requêtes sont transmises par le mandataire distant via la 1756 méthode HTTP CONNECT.</p> 1757 1758 <div class="example"><h3>Exemple</h3><p><code> 1759 ProxyRemote http://bons-gars.example.com/ http://gars-mirroirs.example.com:8000<br /> 1760 ProxyRemote * http://mandataire-intelligent.localdomain<br /> 1761 ProxyRemote ftp http://mandataire-ftp.mon-domaine:8080 1762 </code></p></div> 1763 1764 <p>Dans la dernière ligne de l'exemple, le mandataire va faire 1765 suivre les requêtes FTP, encapsulées dans une autre requête mandatée 1766 HTTP, vers un autre mandataire capable de les traiter.</p> 1767 1768 <p>Cette directive supporte aussi les configurations de mandataire 1769 inverse - un serveur web d'arrière-plan peut être intégré dans 1770 l'espace d'URL d'un serveur virtuel, même si ce serveur est caché 1771 par un autre mandataire direct.</p> 1772 1773 </div> 1774 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> 1775 <div class="directive-section"><h2><a name="proxyremotematch" id="proxyremotematch">Directive</a> <a name="ProxyRemoteMatch" id="ProxyRemoteMatch">ProxyRemoteMatch</a></h2> 1776 <table class="directive"> 1777 <tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Le mandataire distant à utiliser pour traiter les requêtes 1778 correspondant à une expression rationnelle</td></tr> 1779 <tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>ProxyRemoteMatch <var>regex</var> <var>serveur-distant</var></code></td></tr> 1780 <tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur, serveur virtuel</td></tr> 1781 <tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr> 1782 <tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_proxy</td></tr> 1783 </table> 1784 <p>La directive <code class="directive">ProxyRemoteMatch</code> est 1785 identique à la directive <code class="directive"><a href="#proxyremote">ProxyRemote</a></code>, à l'exception que le 1786 premier argument est une <a class="glossarylink" href="../glossary.html#regex" title="voir glossaire">expression 1787 rationnelle</a> à mettre en correspondance avec l'URL de la 1788 requête.</p> 1789 1790 </div> 1791 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> 1792 <div class="directive-section"><h2><a name="proxyrequests" id="proxyrequests">Directive</a> <a name="ProxyRequests" id="ProxyRequests">ProxyRequests</a></h2> 1793 <table class="directive"> 1794 <tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Active la fonctionnalité (standard) de mandataire 1795 direct</td></tr> 1796 <tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>ProxyRequests On|Off</code></td></tr> 1797 <tr><th><a href="directive-dict.html#Default">Défaut:</a></th><td><code>ProxyRequests Off</code></td></tr> 1798 <tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur, serveur virtuel</td></tr> 1799 <tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr> 1800 <tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_proxy</td></tr> 1801 </table> 1802 <p>Cette directive permet d'activer/désactiver la fonctionnalité de 1803 serveur mandataire direct d'Apache. Définir ProxyRequests à 1804 <code>Off</code> n'interdit pas l'utilisation de la directive 1805 <code class="directive"><a href="#proxypass">ProxyPass</a></code>.</p> 1806 1807 <p>Pour une configuration typique de mandataire inverse ou 1808 passerelle, cette directive doit être définie à 1809 <code>Off</code>.</p> 1810 1811 <p>Afin d'activer la fonctionnalité de mandataire pour des sites 1812 HTTP et/ou FTP, les modules <code class="module"><a href="../mod/mod_proxy_http.html">mod_proxy_http</a></code> et/ou 1813 <code class="module"><a href="../mod/mod_proxy_ftp.html">mod_proxy_ftp</a></code> doivent aussi être chargés dans le 1814 serveur.</p> 1815 1816 <p><code class="module"><a href="../mod/mod_proxy_connect.html">mod_proxy_connect</a></code> doit être activé pour pouvoir 1817 mandater (en direct) des sites HTTPS.</p> 1818 1819 <div class="warning"><h3>Avertissement</h3> 1820 <p>N'activez pas la fonctionnalité de mandataire avec la directive 1821 <code class="directive"><a href="#proxyrequests">ProxyRequests</a></code> avant 1822 d'avoir <a href="#access">sécurisé votre serveur</a>. Les serveurs 1823 mandataires ouverts sont dangereux non seulement pour votre 1824 réseau, mais aussi pour l'Internet au sens large.</p> 1825 </div> 1826 1827 <h3>Voir aussi</h3> 1828 <ul> 1829 <li><a href="#forwardreverse">Mandataires/Passerelles directs et 1830 inverses</a></li> 1831 </ul> 1832 </div> 1833 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> 1834 <div class="directive-section"><h2><a name="proxyset" id="proxyset">Directive</a> <a name="ProxySet" id="ProxySet">ProxySet</a></h2> 1835 <table class="directive"> 1836 <tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Définit différents paramètres relatifs à la répartition de 1837 charge des mandataires et aux membres des groupes de répartition de 1838 charge</td></tr> 1839 <tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>ProxySet <var>url</var> <var>clé=valeur [clé=valeur ...]</var></code></td></tr> 1840 <tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>répertoire</td></tr> 1841 <tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr> 1842 <tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_proxy</td></tr> 1843 <tr><th><a href="directive-dict.html#Compatibility">Compatibilité:</a></th><td>ProxySet n'est disponible que depuis la version 2.2 1844 d'Apache.</td></tr> 1845 </table> 1846 <p>Cette directive propose une méthode alternative pour définir tout 1847 paramètre relatif aux répartiteurs de charge et serveurs cibles de 1848 mandataires normalement défini via la directive <code class="directive"><a href="#proxypass">ProxyPass</a></code>. Si elle se trouve dans un 1849 conteneur <code><Proxy <var>url de répartiteur|url de 1850 serveur cible</var>></code>, l'argument <var>url</var> n'est pas 1851 nécessaire. Comme effet de bord, le répartiteur ou serveur cible respectif 1852 est créé. Ceci peut s'avérer utile pour la mise en oeuvre d'un 1853 mandataire inverse via une directive <code class="directive"><a href="../mod/mod_rewrite.html#rewriterule">RewriteRule</a></code> au lieu de <code class="directive"><a href="#proxypass">ProxyPass</a></code>.</p> 1854 1855 <div class="example"><p><code> 1856 <Proxy balancer://hotcluster><br /> 1857 <span class="indent"> 1858 BalancerMember http://www2.example.com:8080 loadfactor=1<br /> 1859 BalancerMember http://www3.example.com:8080 loadfactor=2<br /> 1860 ProxySet lbmethod=bytraffic<br /> 1861 </span> 1862 </Proxy> 1863 </code></p></div> 1864 1865 <div class="example"><p><code> 1866 <Proxy http://backend><br /> 1867 <span class="indent"> 1868 ProxySet keepalive=On<br /> 1869 </span> 1870 </Proxy> 1871 </code></p></div> 1872 1873 <div class="example"><p><code> 1874 ProxySet balancer://foo lbmethod=bytraffic timeout=15 1875 </code></p></div> 1876 1877 <div class="example"><p><code> 1878 ProxySet ajp://backend:7001 timeout=15 1879 </code></p></div> 1880 1881 <div class="warning"><h3>Avertissement</h3> 1882 <p>Gardez à l'esprit qu'une même clé de paramètre peut avoir 1883 différentes significations selon qu'elle s'applique à un 1884 répartiteur ou à un serveur cible, et ceci est illustré par les deux 1885 exemples précédents où il est question d'un timeout.</p> 1886 </div> 1887 1888 1889 </div> 1890 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> 1891 <div class="directive-section"><h2><a name="proxystatus" id="proxystatus">Directive</a> <a name="ProxyStatus" id="ProxyStatus">ProxyStatus</a></h2> 1892 <table class="directive"> 1893 <tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Affiche l'état du répartiteur de charge du mandataire dans 1894 mod_status</td></tr> 1895 <tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>ProxyStatus Off|On|Full</code></td></tr> 1896 <tr><th><a href="directive-dict.html#Default">Défaut:</a></th><td><code>ProxyStatus Off</code></td></tr> 1897 <tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur, serveur virtuel</td></tr> 1898 <tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr> 1899 <tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_proxy</td></tr> 1900 <tr><th><a href="directive-dict.html#Compatibility">Compatibilité:</a></th><td>Disponible depuis la version 2.2 d'Apache</td></tr> 1901 </table> 1902 <p>Cette directive permet de spécifier si les données d'état du 1903 répartiteur de charge du mandataire doivent être affichées via la 1904 page d'état du serveur du module <code class="module"><a href="../mod/mod_status.html">mod_status</a></code>.</p> 1905 <div class="note"><h3>Note</h3> 1906 <p>L'argument <strong>Full</strong> produit le même effet que 1907 l'argument <strong>On</strong>.</p> 1908 </div> 1909 1910 1911 </div> 1912 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> 1913 <div class="directive-section"><h2><a name="proxytimeout" id="proxytimeout">Directive</a> <a name="ProxyTimeout" id="ProxyTimeout">ProxyTimeout</a></h2> 1914 <table class="directive"> 1915 <tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Délai d'attente réseau pour les requêtes 1916 mandatées</td></tr> 1917 <tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>ProxyTimeout <var>secondes</var></code></td></tr> 1918 <tr><th><a href="directive-dict.html#Default">Défaut:</a></th><td><code>Valeur de la directive <code class="directive"><a href="../mod/core.html#timeout">Timeout</a></code></code></td></tr> 1919 <tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur, serveur virtuel</td></tr> 1920 <tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr> 1921 <tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_proxy</td></tr> 1922 <tr><th><a href="directive-dict.html#Compatibility">Compatibilité:</a></th><td>Disponible depuis la version 2.0.31 d'Apache</td></tr> 1923 </table> 1924 <p>Cette directive permet à l'utilisateur de spécifier un délai pour 1925 les requêtes mandatées. Ceci s'avère utile dans le cas d'un serveur 1926 d'applications lent et bogué qui a tendance à se bloquer, et si vous 1927 préférez simplement renvoyer une erreur timeout et abandonner la 1928 connexion en douceur plutôt que d'attendre jusqu'à ce que le serveur 1929 veuille bien répondre.</p> 1930 1931 </div> 1932 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> 1933 <div class="directive-section"><h2><a name="proxyvia" id="proxyvia">Directive</a> <a name="ProxyVia" id="ProxyVia">ProxyVia</a></h2> 1934 <table class="directive"> 1935 <tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Information fourni dans l'en-tête de réponse HTTP 1936 <code>Via</code> pour les requêtes mandatées</td></tr> 1937 <tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>ProxyVia On|Off|Full|Block</code></td></tr> 1938 <tr><th><a href="directive-dict.html#Default">Défaut:</a></th><td><code>ProxyVia Off</code></td></tr> 1939 <tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur, serveur virtuel</td></tr> 1940 <tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr> 1941 <tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_proxy</td></tr> 1942 </table> 1943 <p>Cette directive permet de contrôler l'utilisation de l'en-tête 1944 HTTP <code>Via:</code> par le mandataire. Le but recherché est de 1945 contrôler le flux des requêtes mandatées tout au long d'une chaîne 1946 de serveurs mandataires. Voir <a href="http://www.ietf.org/rfc/rfc2616.txt">RFC 2616</a> (HTTP/1.1), 1947 section 14.45 pour une description des lignes d'en-tête 1948 <code>Via:</code>.</p> 1949 1950 <ul> 1951 <li>Si elle est définie à <code>Off</code>, valeur par défaut, cette 1952 directive n'effectue aucun traitement particulier. Si une requête ou 1953 une réponse contient un en-tête <code>Via:</code>, il est transmis 1954 sans modification.</li> 1955 1956 <li>Si elle est définie à <code>On</code>, chaque requête ou réponse 1957 se verra ajouter une ligne d'en-tête <code>Via:</code> pour le 1958 serveur courant.</li> 1959 1960 <li>Si elle est définie à <code>Full</code>, chaque ligne d'en-tête 1961 <code>Via:</code> se verra ajouter la version du serveur Apache sous 1962 la forme d'un champ de commentaire <code>Via:</code>.</li> 1963 1964 <li>Si elle est définie à <code>Block</code>, chaque requête 1965 mandatée verra ses lignes d'en-tête <code>Via:</code> supprimées. 1966 Aucun nouvel en-tête <code>Via:</code> ne sera généré.</li> 1967 </ul> 1968 1969 </div> 1970 </div> 1971 <div class="bottomlang"> 1972 <p><span>Langues Disponibles: </span><a href="../en/mod/mod_proxy.html" hreflang="en" rel="alternate" title="English"> en </a> | 1973 <a href="../fr/mod/mod_proxy.html" title="Français"> fr </a> | 1974 <a href="../ja/mod/mod_proxy.html" hreflang="ja" rel="alternate" title="Japanese"> ja </a></p> 1975 </div><div class="top"><a href="#page-header"><img src="../images/up.gif" alt="top" /></a></div><div class="section"><h2><a id="comments_section" name="comments_section">Commentaires</a></h2><div class="warning"><strong>Notice:</strong><br />This is not a Q&A section. Comments placed here should be pointed towards suggestions on improving the documentation or server, and may be removed again by our moderators if they are either implemented or considered invalid/off-topic. Questions on how to manage the Apache HTTP Server should be directed at either our IRC channel, #httpd, on Freenode, or sent to our <a href="http://httpd.apache.org/lists.html">mailing lists</a>.</div> 1976 <script type="text/javascript"><!--//--><![CDATA[//><!-- 1977 var comments_shortname = 'httpd'; 1978 var comments_identifier = 'http://httpd.apache.org/docs/2.2/mod/mod_proxy.html'; 1979 (function(w, d) { 1980 if (w.location.hostname.toLowerCase() == "httpd.apache.org") { 1981 d.write('<div id="comments_thread"><\/div>'); 1982 var s = d.createElement('script'); 1983 s.type = 'text/javascript'; 1984 s.async = true; 1985 s.src = 'https://comments.apache.org/show_comments.lua?site=' + comments_shortname + '&page=' + comments_identifier; 1986 (d.getElementsByTagName('head')[0] || d.getElementsByTagName('body')[0]).appendChild(s); 1987 } 1988 else { 1989 d.write('<div id="comments_thread">Comments are disabled for this page at the moment.<\/div>'); 1990 } 1991 })(window, document); 1992 //--><!]]></script></div><div id="footer"> 1993 <p class="apache">Copyright 2017 The Apache Software Foundation.<br />Autorisé sous <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache License, Version 2.0</a>.</p> 1994 <p class="menu"><a href="../mod/">Modules</a> | <a href="../mod/directives.html">Directives</a> | <a href="http://wiki.apache.org/httpd/FAQ">FAQ</a> | <a href="../glossary.html">Glossaire</a> | <a href="../sitemap.html">Plan du site</a></p></div><script type="text/javascript"><!--//--><![CDATA[//><!-- 1995 if (typeof(prettyPrint) !== 'undefined') { 1996 prettyPrint(); 1997 } 1998 //--><!]]></script> 1999 </body></html>