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="&lt;-" alt="&lt;-" src="../images/left.gif" /></a></div>
    24  <div id="path">
    25  <a href="http://www.apache.org/">Apache</a> &gt; <a href="http://httpd.apache.org/">Serveur HTTP</a> &gt; <a href="http://httpd.apache.org/docs/">Documentation</a> &gt; <a href="../">Version 2.2</a> &gt; <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">&nbsp;en&nbsp;</a> |
    37  <a href="../fr/mod/mod_proxy.html" title="Français">&nbsp;fr&nbsp;</a> |
    38  <a href="../ja/mod/mod_proxy.html" hreflang="ja" rel="alternate" title="Japanese">&nbsp;ja&nbsp;</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">&lt;Proxy&gt;</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">&lt;ProxyMatch&gt;</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      &lt;Proxy *&gt;<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      &lt;/Proxy&gt;
   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          &lt;Proxy http://backend.example.com&gt;<br />
   256          <span class="indent">
   257            ProxySet connectiontimeout=5 timeout=30
   258          </span>
   259          &lt;/Proxy&gt;
   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">&lt;Proxy&gt;</a></code> comme dans
   347        l'exemple suivant :</p>
   348  
   349        <div class="example"><p><code>
   350          &lt;Proxy *&gt;<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          &lt;/Proxy&gt;
   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          &lt;Location /serveur-non-conforme/&gt;<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          &lt;/Location&gt;
   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>&lt;Proxy <var>balancer://</var>...&gt;</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>&lt;Proxy
   538      <var>balancer://</var>...&gt;</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">&lt;Proxy&gt;</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>&lt;Proxy <var>url-avec-jokers</var>&gt; ...&lt;/Proxy&gt;</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">&lt;Proxy&gt;</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        &lt;Proxy *&gt;<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        &lt;/Proxy&gt;
   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        &lt;Proxy http://example.com/foo/*&gt;<br />
   720        <span class="indent">
   721          SetOutputFilter INCLUDES<br />
   722        </span>
   723        &lt;/Proxy&gt;
   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, &lt;Proxy
   731        http://example.com/foo&gt; 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">&lt;Location&gt;</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">&lt;ProxyMatch&gt;</code>.</p>
   739      </div>
   740  
   741  
   742  <h3>Voir aussi</h3>
   743  <ul>
   744  <li><code class="directive"><a href="#proxymatch">&lt;ProxyMatch&gt;</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">&lt;ProxyMatch&gt;</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>&lt;ProxyMatch <var>regex</var>&gt; ...&lt;/ProxyMatch&gt;</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">&lt;ProxyMatch&gt;</code> est
   929      identique à la directive <code class="directive"><a href="#proxy">&lt;Proxy&gt;</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">&lt;Proxy&gt;</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">&lt;Location&gt;</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">&lt;Location&gt;</a></code>. Il en est de même à l'intérieur
  1019      d'une section <code class="directive"><a href="../mod/core.html#locationmatch">&lt;LocationMatch&gt;</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">&lt;Location&gt;</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">&lt;Directory&gt;</a></code> ou
  1027      <code class="directive"><a href="../mod/core.html#files">&lt;Files&gt;</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        &lt;Proxy balancer://mon-cluster&gt;<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        &lt;/Proxy&gt;
  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        &lt;Proxy balancer://hotcluster&gt;<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        &lt;/Proxy&gt;
  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">&lt;LocationMatch&gt;</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">&lt;LocationMatch&gt;</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">&lt;Location&gt;</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">&lt;Location&gt;</a></code>. Il en est de même à l'intérieur
  1619      d'une section <code class="directive"><a href="../mod/core.html#locationmatch">&lt;LocationMatch&gt;</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">&lt;Location&gt;</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">&lt;Directory&gt;</a></code> ou
  1630      <code class="directive"><a href="../mod/core.html#files">&lt;Files&gt;</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>&lt;Proxy <var>url de répartiteur|url de
  1850      serveur cible</var>&gt;</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        &lt;Proxy balancer://hotcluster&gt;<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        &lt;/Proxy&gt;
  1863      </code></p></div>
  1864  
  1865      <div class="example"><p><code>
  1866        &lt;Proxy http://backend&gt;<br />
  1867        <span class="indent">
  1868          ProxySet keepalive=On<br />
  1869        </span>
  1870        &lt;/Proxy&gt;
  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">&nbsp;en&nbsp;</a> |
  1973  <a href="../fr/mod/mod_proxy.html" title="Français">&nbsp;fr&nbsp;</a> |
  1974  <a href="../ja/mod/mod_proxy.html" hreflang="ja" rel="alternate" title="Japanese">&nbsp;ja&nbsp;</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&amp;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>