mirror of
				https://github.com/apache/httpd.git
				synced 2025-11-03 17:53:20 +03:00 
			
		
		
		
	git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1820055 13f79535-47bb-0310-9956-ffa450edef68
		
			
				
	
	
		
			2325 lines
		
	
	
		
			135 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			2325 lines
		
	
	
		
			135 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
<?xml version="1.0" encoding="ISO-8859-1"?>
 | 
						||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
 | 
						||
<html xmlns="http://www.w3.org/1999/xhtml" lang="fr" xml:lang="fr"><head>
 | 
						||
<meta content="text/html; charset=ISO-8859-1" http-equiv="Content-Type" />
 | 
						||
<!--
 | 
						||
        XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
 | 
						||
              This file is generated from xml source: DO NOT EDIT
 | 
						||
        XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
 | 
						||
      -->
 | 
						||
<title>mod_proxy - Serveur Apache HTTP Version 2.5</title>
 | 
						||
<link href="../style/css/manual.css" rel="stylesheet" media="all" type="text/css" title="Main stylesheet" />
 | 
						||
<link href="../style/css/manual-loose-100pc.css" rel="alternate stylesheet" media="all" type="text/css" title="No Sidebar - Default font size" />
 | 
						||
<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" />
 | 
						||
<script src="../style/scripts/prettify.min.js" type="text/javascript">
 | 
						||
</script>
 | 
						||
 | 
						||
<link href="../images/favicon.ico" rel="shortcut icon" /></head>
 | 
						||
<body>
 | 
						||
<div id="page-header">
 | 
						||
<p class="menu"><a href="../mod/">Modules</a> | <a href="../mod/quickreference.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>
 | 
						||
<p class="apache">Serveur Apache HTTP Version 2.5</p>
 | 
						||
<img alt="" src="../images/feather.png" /></div>
 | 
						||
<div class="up"><a href="./"><img title="<-" alt="<-" src="../images/left.gif" /></a></div>
 | 
						||
<div id="path">
 | 
						||
<a href="http://www.apache.org/">Apache</a> > <a href="http://httpd.apache.org/">Serveur HTTP</a> > <a href="http://httpd.apache.org/docs/">Documentation</a> > <a href="../">Version 2.5</a> > <a href="./">Modules</a></div>
 | 
						||
<div id="page-content">
 | 
						||
<div id="preamble"><h1>Module Apache mod_proxy</h1>
 | 
						||
<div class="toplang">
 | 
						||
<p><span>Langues Disponibles: </span><a href="../en/mod/mod_proxy.html" hreflang="en" rel="alternate" title="English"> en </a> |
 | 
						||
<a href="../fr/mod/mod_proxy.html" title="Fran<61>ais"> fr </a> |
 | 
						||
<a href="../ja/mod/mod_proxy.html" hreflang="ja" rel="alternate" title="Japanese"> ja </a></p>
 | 
						||
</div>
 | 
						||
<table class="module"><tr><th><a href="module-dict.html#Description">Description:</a></th><td>Serveur mandataire/passerelle multi-protocole</td></tr>
 | 
						||
<tr><th><a href="module-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
 | 
						||
<tr><th><a href="module-dict.html#ModuleIdentifier">Identificateur<75>de<64>Module:</a></th><td>proxy_module</td></tr>
 | 
						||
<tr><th><a href="module-dict.html#SourceFile">Fichier<65>Source:</a></th><td>mod_proxy.c</td></tr></table>
 | 
						||
<h3>Sommaire</h3>
 | 
						||
 | 
						||
    <div class="warning"><h3>Avertissement</h3>
 | 
						||
      <p>N'activez pas la fonctionnalit<69> de mandataire avec la directive
 | 
						||
      <code class="directive"><a href="#proxyrequests">ProxyRequests</a></code> avant
 | 
						||
      d'avoir <a href="#access">s<>curis<69> votre serveur</a>. Les serveurs
 | 
						||
      mandataires ouverts sont dangereux pour votre r<>seau,
 | 
						||
      mais aussi pour l'Internet au sens large.</p>
 | 
						||
    </div>
 | 
						||
 | 
						||
    <p><code class="module"><a href="../mod/mod_proxy.html">mod_proxy</a></code> et ses modules associ<63>s impl<70>mentent
 | 
						||
    un mandataire/passerelle pour le serveur HTTP Apache, et supportent
 | 
						||
    de nombreux protocoles courants, ainsi que plusieurs algorithmes de
 | 
						||
    r<>partition de charge. Le support de protocoles et d'algorithmes de
 | 
						||
    r<>partition de charge suppl<70>mentaires peut <20>tre assur<75> par des
 | 
						||
    modules tiers.</p>
 | 
						||
 | 
						||
    <p>Un jeu de modules charg<72>s dans le serveur permet de fournir les
 | 
						||
    fonctionnalit<69>s souhait<69>es. Ces modules peuvent <20>tre inclus
 | 
						||
    statiquement <20> la compilation, ou dynamiquement via la directive
 | 
						||
    <code class="directive"><a href="../mod/mod_so.html#loadmodule">LoadModule</a></code>. Ce jeu de module
 | 
						||
    doit comporter :</p>
 | 
						||
 | 
						||
    <ul>
 | 
						||
      <li><code class="module"><a href="../mod/mod_proxy.html">mod_proxy</a></code>, qui fournit les fonctionnalit<69>s de
 | 
						||
      base d'un mandataire</li>
 | 
						||
 | 
						||
      <li><code class="module"><a href="../mod/mod_proxy_balancer.html">mod_proxy_balancer</a></code> et un ou plusieurs modules
 | 
						||
      de r<>partition, si la r<>partition de charge doit <20>tre mise en
 | 
						||
      oeuvre (Voir la documentation de
 | 
						||
      <code class="module"><a href="../mod/mod_proxy_balancer.html">mod_proxy_balancer</a></code> pour plus de d<>tails).</li>
 | 
						||
 | 
						||
      <li>un ou plusieurs modules de types de mandataire, ou protocoles
 | 
						||
      :
 | 
						||
 | 
						||
        <table class="bordered">
 | 
						||
        <tr><th>Protocole</th><th>Module</th></tr>
 | 
						||
        <tr><td>AJP13 (Protocole Apache JServe version
 | 
						||
          1.3)</td><td><code class="module"><a href="../mod/mod_proxy_ajp.html">mod_proxy_ajp</a></code></td></tr>
 | 
						||
        <tr><td>CONNECT (pour
 | 
						||
          SSL)</td><td><code class="module"><a href="../mod/mod_proxy_connect.html">mod_proxy_connect</a></code></td></tr>
 | 
						||
        <tr><td>FastCGI</td><td><code class="module"><a href="../mod/mod_proxy_fcgi.html">mod_proxy_fcgi</a></code></td></tr>
 | 
						||
        <tr><td>ftp</td><td><code class="module"><a href="../mod/mod_proxy_ftp.html">mod_proxy_ftp</a></code></td></tr>
 | 
						||
        <tr><td>HTTP/0.9, HTTP/1.0, et
 | 
						||
          HTTP/1.1</td><td><code class="module"><a href="../mod/mod_proxy_http.html">mod_proxy_http</a></code></td></tr>
 | 
						||
        <tr><td>SCGI</td><td><code class="module"><a href="../mod/mod_proxy_scgi.html">mod_proxy_scgi</a></code></td></tr>
 | 
						||
	<tr><td>WS and WSS (Web-sockets)</td><td><code class="module"><a href="../mod/mod_proxy_wstunnel.html">mod_proxy_wstunnel</a></code></td></tr>
 | 
						||
        </table>
 | 
						||
      </li>
 | 
						||
    </ul>
 | 
						||
 | 
						||
    <p>En outre, d'autres modules fournissent des fonctionnalit<69>s
 | 
						||
    <20>tendues. <code class="module"><a href="../mod/mod_cache.html">mod_cache</a></code> et ses modules associ<63>s
 | 
						||
    fournissent la mise en cache. Les directives <code>SSLProxy*</code>
 | 
						||
    du module <code class="module"><a href="../mod/mod_ssl.html">mod_ssl</a></code> permettent de contacter des
 | 
						||
    serveurs distants en utilisant le protocole SSL/TLS. Ces modules
 | 
						||
    additionnels devront <20>tre charg<72>s et configur<75>s pour pouvoir
 | 
						||
    disposer de ces fonctionnalit<69>s.</p>
 | 
						||
</div>
 | 
						||
<div id="quickview"><h3>Sujets</h3>
 | 
						||
<ul id="topics">
 | 
						||
<li><img alt="" src="../images/down.gif" /> <a href="#forwardreverse">Mandataires directs et
 | 
						||
    mandataires/passerelles inverses</a></li>
 | 
						||
<li><img alt="" src="../images/down.gif" /> <a href="#examples">Exemples simples</a></li>
 | 
						||
<li><img alt="" src="../images/down.gif" /> <a href="#handler">Acc<63>s via un gestionnaire</a></li>
 | 
						||
<li><img alt="" src="../images/down.gif" /> <a href="#workers">Workers</a></li>
 | 
						||
<li><img alt="" src="../images/down.gif" /> <a href="#access">Contr<74>ler l'acc<63>s <20> votre
 | 
						||
    mandataire</a></li>
 | 
						||
<li><img alt="" src="../images/down.gif" /> <a href="#startup">Ralentissement au d<>marrage</a></li>
 | 
						||
<li><img alt="" src="../images/down.gif" /> <a href="#intranet">Mandataire en Intranet</a></li>
 | 
						||
<li><img alt="" src="../images/down.gif" /> <a href="#envsettings">Ajustements relatifs au
 | 
						||
    protocole</a></li>
 | 
						||
<li><img alt="" src="../images/down.gif" /> <a href="#request-bodies">Corps de requ<71>tes</a></li>
 | 
						||
<li><img alt="" src="../images/down.gif" /> <a href="#x-headers">En-t<>tes de requ<71>te du mandataire
 | 
						||
    inverse</a></li>
 | 
						||
</ul><h3 class="directives">Directives</h3>
 | 
						||
<ul id="toc">
 | 
						||
<li><img alt="" src="../images/down.gif" /> <a href="#balancergrowth">BalancerGrowth</a></li>
 | 
						||
<li><img alt="" src="../images/down.gif" /> <a href="#balancerinherit">BalancerInherit</a></li>
 | 
						||
<li><img alt="" src="../images/down.gif" /> <a href="#balancermember">BalancerMember</a></li>
 | 
						||
<li><img alt="" src="../images/down.gif" /> <a href="#balancerpersist">BalancerPersist</a></li>
 | 
						||
<li><img alt="" src="../images/down.gif" /> <a href="#noproxy">NoProxy</a></li>
 | 
						||
<li><img alt="" src="../images/down.gif" /> <a href="#proxy"><Proxy></a></li>
 | 
						||
<li><img alt="" src="../images/down.gif" /> <a href="#proxyaddheaders">ProxyAddHeaders</a></li>
 | 
						||
<li><img alt="" src="../images/down.gif" /> <a href="#proxybadheader">ProxyBadHeader</a></li>
 | 
						||
<li><img alt="" src="../images/down.gif" /> <a href="#proxyblock">ProxyBlock</a></li>
 | 
						||
<li><img alt="" src="../images/down.gif" /> <a href="#proxydomain">ProxyDomain</a></li>
 | 
						||
<li><img alt="" src="../images/down.gif" /> <a href="#proxyerroroverride">ProxyErrorOverride</a></li>
 | 
						||
<li><img alt="" src="../images/down.gif" /> <a href="#proxyiobuffersize">ProxyIOBufferSize</a></li>
 | 
						||
<li><img alt="" src="../images/down.gif" /> <a href="#proxymatch"><ProxyMatch></a></li>
 | 
						||
<li><img alt="" src="../images/down.gif" /> <a href="#proxymaxforwards">ProxyMaxForwards</a></li>
 | 
						||
<li><img alt="" src="../images/down.gif" /> <a href="#proxypass">ProxyPass</a></li>
 | 
						||
<li><img alt="" src="../images/down.gif" /> <a href="#proxypassinherit">ProxyPassInherit</a></li>
 | 
						||
<li><img alt="" src="../images/down.gif" /> <a href="#proxypassinterpolateenv">ProxyPassInterpolateEnv</a></li>
 | 
						||
<li><img alt="" src="../images/down.gif" /> <a href="#proxypassmatch">ProxyPassMatch</a></li>
 | 
						||
<li><img alt="" src="../images/down.gif" /> <a href="#proxypassreverse">ProxyPassReverse</a></li>
 | 
						||
<li><img alt="" src="../images/down.gif" /> <a href="#proxypassreversecookiedomain">ProxyPassReverseCookieDomain</a></li>
 | 
						||
<li><img alt="" src="../images/down.gif" /> <a href="#proxypassreversecookiepath">ProxyPassReverseCookiePath</a></li>
 | 
						||
<li><img alt="" src="../images/down.gif" /> <a href="#proxypreservehost">ProxyPreserveHost</a></li>
 | 
						||
<li><img alt="" src="../images/down.gif" /> <a href="#proxyreceivebuffersize">ProxyReceiveBufferSize</a></li>
 | 
						||
<li><img alt="" src="../images/down.gif" /> <a href="#proxyremote">ProxyRemote</a></li>
 | 
						||
<li><img alt="" src="../images/down.gif" /> <a href="#proxyremotematch">ProxyRemoteMatch</a></li>
 | 
						||
<li><img alt="" src="../images/down.gif" /> <a href="#proxyrequests">ProxyRequests</a></li>
 | 
						||
<li><img alt="" src="../images/down.gif" /> <a href="#proxyset">ProxySet</a></li>
 | 
						||
<li><img alt="" src="../images/down.gif" /> <a href="#proxysourceaddress">ProxySourceAddress</a></li>
 | 
						||
<li><img alt="" src="../images/down.gif" /> <a href="#proxystatus">ProxyStatus</a></li>
 | 
						||
<li><img alt="" src="../images/down.gif" /> <a href="#proxytimeout">ProxyTimeout</a></li>
 | 
						||
<li><img alt="" src="../images/down.gif" /> <a href="#proxyvia">ProxyVia</a></li>
 | 
						||
</ul>
 | 
						||
<h3>Traitement des bugs</h3><ul class="seealso"><li><a href="https://www.apache.org/dist/httpd/CHANGES_2.4">Journal des modifications de httpd</a></li><li><a href="https://bz.apache.org/bugzilla/buglist.cgi?bug_status=__open__&list_id=144532&product=Apache%20httpd-2&query_format=specific&order=changeddate%20DESC%2Cpriority%2Cbug_severity&component=mod_proxy">Probl<62>mes connus</a></li><li><a href="https://bz.apache.org/bugzilla/enter_bug.cgi?product=Apache%20httpd-2&component=mod_proxy">Signaler un bug</a></li></ul><h3>Voir aussi</h3>
 | 
						||
<ul class="seealso">
 | 
						||
<li><code class="module"><a href="../mod/mod_cache.html">mod_cache</a></code></li>
 | 
						||
<li><code class="module"><a href="../mod/mod_proxy_ajp.html">mod_proxy_ajp</a></code></li>
 | 
						||
<li><code class="module"><a href="../mod/mod_proxy_balancer.html">mod_proxy_balancer</a></code></li>
 | 
						||
<li><code class="module"><a href="../mod/mod_proxy_connect.html">mod_proxy_connect</a></code></li>
 | 
						||
<li><code class="module"><a href="../mod/mod_proxy_fcgi.html">mod_proxy_fcgi</a></code></li>
 | 
						||
<li><code class="module"><a href="../mod/mod_proxy_ftp.html">mod_proxy_ftp</a></code></li>
 | 
						||
<li><code class="module"><a href="../mod/mod_proxy_hcheck.html">mod_proxy_hcheck</a></code></li>
 | 
						||
<li><code class="module"><a href="../mod/mod_proxy_http.html">mod_proxy_http</a></code></li>
 | 
						||
<li><code class="module"><a href="../mod/mod_proxy_scgi.html">mod_proxy_scgi</a></code></li>
 | 
						||
<li><code class="module"><a href="../mod/mod_proxy_wstunnel.html">mod_proxy_wstunnel</a></code></li>
 | 
						||
<li><code class="module"><a href="../mod/mod_ssl.html">mod_ssl</a></code></li>
 | 
						||
<li><a href="#comments_section">Commentaires</a></li></ul></div>
 | 
						||
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
 | 
						||
<div class="section">
 | 
						||
<h2><a name="forwardreverse" id="forwardreverse">Mandataires directs et
 | 
						||
    mandataires/passerelles inverses</a></h2>
 | 
						||
      <p>Le serveur HTTP Apache peut <20>tre configur<75> dans les deux modes mandataire
 | 
						||
      <dfn>direct</dfn> et mandataire <dfn>inverse</dfn> (aussi nomm<6D>
 | 
						||
      mode <dfn>passerelle</dfn>).</p>
 | 
						||
 | 
						||
      <p>Un <dfn>mandataire direct</dfn> standard est un serveur
 | 
						||
      interm<72>diaire qui s'intercale entre le client et le <em>serveur
 | 
						||
      demand<6E></em>. Pour obtenir un contenu h<>berg<72> par
 | 
						||
      le serveur demand<6E>, le client envoie une requ<71>te au
 | 
						||
      mandataire en nommant le serveur demand<6E> comme
 | 
						||
      cible, puis le mandataire extrait le contenu depuis le
 | 
						||
      serveur demand<6E> et le renvoie enfin au client. Le client doit <20>tre
 | 
						||
      configur<75> de mani<6E>re appropri<72>e pour pouvoir utiliser le mandataire
 | 
						||
      direct afin d'acc<63>der <20> d'autres sites.</p>
 | 
						||
 | 
						||
      <p>L'acc<63>s <20> Internet depuis des clients situ<74>s derri<72>re un
 | 
						||
      pare-feu est une utilisation typique du mandataire direct. Le
 | 
						||
      mandataire direct peut aussi utiliser la mise en cache (fournie
 | 
						||
      par <code class="module"><a href="../mod/mod_cache.html">mod_cache</a></code>) pour r<>duire la charge du
 | 
						||
      r<>seau.</p>
 | 
						||
 | 
						||
      <p>La fonctionnalit<69> de mandataire direct est activ<69>e via la
 | 
						||
      directive <code class="directive"><a href="#proxyrequests">ProxyRequests</a></code>.
 | 
						||
      Comme les mandataires directs permettent aux clients d'acc<63>der <20>
 | 
						||
      des sites quelconques via votre serveur et de dissimuler leur
 | 
						||
      v<>ritable origine, il est indispensable de <a href="#access">s<>curiser votre serveur</a> de fa<66>on <20> ce que seuls
 | 
						||
      les clients autoris<69>s puissent acc<63>der <20> votre serveur avant
 | 
						||
      d'activer la fonctionnalit<69> de mandataire direct.</p>
 | 
						||
 | 
						||
      <p>Un <dfn>mandataire inverse</dfn> (ou <dfn>passerelle</dfn>),
 | 
						||
      quant <20> lui, appara<72>t au client comme un serveur web standard.
 | 
						||
      Aucune configuration particuli<6C>re du client n'est n<>cessaire. Le
 | 
						||
      client adresse ses demandes de contenus ordinaires dans l'espace
 | 
						||
      de nommage du mandataire inverse. Ce dernier d<>cide alors o<>
 | 
						||
      envoyer ces requ<71>tes, et renvoie le contenu au client comme s'il
 | 
						||
      l'h<>bergeait lui-m<>me.</p>
 | 
						||
 | 
						||
      <p>L'acc<63>s d'utilisateurs depuis Internet vers un serveur situ<74>
 | 
						||
      derri<72>re un pare-feu est une utilisation typique du mandataire
 | 
						||
      inverse. On peut aussi utiliser les mandataires inverses pour
 | 
						||
      mettre en oeuvre une r<>partition de charge entre plusieurs
 | 
						||
      serveurs en arri<72>re-plan, ou fournir un cache pour un serveur
 | 
						||
      d'arri<72>re-plan plus lent. Les mandataires inverses peuvent aussi
 | 
						||
      tout simplement servir <20> rassembler plusieurs serveurs dans le
 | 
						||
      m<>me espace de nommage d'URLs.</p>
 | 
						||
 | 
						||
      <p>La fonctionnalit<69> de mandataire inverse est activ<69>e via la
 | 
						||
      directive <code class="directive"><a href="#proxypass">ProxyPass</a></code> ou
 | 
						||
      le drapeau <code>[P]</code> de la directive <code class="directive"><a href="../mod/mod_rewrite.html#rewriterule">RewriteRule</a></code>. Il n'est
 | 
						||
      <strong>pas</strong> n<>cessaire de d<>finir <code class="directive"><a href="#proxyrequests">ProxyRequests</a></code> pour configurer
 | 
						||
      un mandataire inverse.</p>
 | 
						||
    </div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
 | 
						||
<div class="section">
 | 
						||
<h2><a name="examples" id="examples">Exemples simples</a></h2>
 | 
						||
 | 
						||
    <p>Les exemples ci-dessous illustrent de mani<6E>re tr<74>s basique la
 | 
						||
    mise en oeuvre de la fonctionnalit<69> de mandataire et ne sont l<> que
 | 
						||
    pour vous aider <20> d<>marrer. Reportez-vous <20> la documentation de
 | 
						||
    chaque directive.</p>
 | 
						||
 | 
						||
    <p>Si en outre, vous d<>sirez activer la mise en cache, consultez la
 | 
						||
    documentation de <code class="module"><a href="../mod/mod_cache.html">mod_cache</a></code>.</p>
 | 
						||
 | 
						||
    <div class="example"><h3>Mandataire inverse</h3><pre class="prettyprint lang-config">ProxyPass "/foo" "http://foo.example.com/bar"
 | 
						||
ProxyPassReverse "/foo" "http://foo.example.com/bar"</pre>
 | 
						||
</div>
 | 
						||
 | 
						||
    <div class="example"><h3>Mandataire direct</h3><pre class="prettyprint lang-config">ProxyRequests On
 | 
						||
ProxyVia On
 | 
						||
 | 
						||
<Proxy *>
 | 
						||
  Require host internal.example.com
 | 
						||
</Proxy></pre>
 | 
						||
</div>
 | 
						||
    </div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
 | 
						||
<div class="section">
 | 
						||
<h2><a name="handler" id="handler">Acc<63>s via un gestionnaire</a></h2>
 | 
						||
 | 
						||
    <p>Vous pouvez aussi forcer le traitement d'une requ<71>te en tant que
 | 
						||
    requ<71>te de mandataire inverse en cr<63>ant un gestionnaire de transfert
 | 
						||
    appropri<72>. Dans l'exemple suivant, toutes les requ<71>tes pour
 | 
						||
    des scripts PHP seront transmises au serveur FastCGI
 | 
						||
    sp<73>cifi<66> via un mandat inverse :
 | 
						||
    </p>
 | 
						||
 | 
						||
    <div class="example"><h3>Scripts PHP et mandataire inverse</h3><pre class="prettyprint lang-config"><FilesMatch "\.php$">
 | 
						||
    SetHandler  "proxy:unix:/path/to/app.sock|fcgi://localhost/"
 | 
						||
</FilesMatch></pre>
 | 
						||
</div>
 | 
						||
 | 
						||
      <p>Cette fonctionnalit<69> est disponible <20> partir de la version
 | 
						||
      2.4.10 du serveur HTTP Apache.</p>
 | 
						||
 | 
						||
    </div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
 | 
						||
<div class="section">
 | 
						||
<h2><a name="workers" id="workers">Workers</a></h2>
 | 
						||
      <p>Le mandataire g<>re la configuration et les param<61>tres de
 | 
						||
      communication des serveurs originaux au sein d'objets nomm<6D>s
 | 
						||
      <dfn>workers</dfn>. Deux types de worker sont fournis : le worker
 | 
						||
      par d<>faut du mandataire direct et le worker par d<>faut du
 | 
						||
      mandataire inverse. Il est aussi possible de d<>finir explicitement
 | 
						||
      des workers suppl<70>mentaires.</p>
 | 
						||
 | 
						||
      <p>Les deux workers par d<>faut poss<73>dent une configuration fig<69>e
 | 
						||
      et seront utilis<69>s si aucun autre worker ne correspond <20> la
 | 
						||
      requ<71>te. Ils ne r<>utilisent pas les connexions et n'utilisent pas les
 | 
						||
      connexions HTTP persistantes (Keep-Alive). En effet, les
 | 
						||
      connexions TCP vers le serveur original sont ferm<72>es et ouvertes
 | 
						||
      pour chaque requ<71>te.</p>
 | 
						||
 | 
						||
      <p>Les workers d<>finis explicitement sont identifi<66>s par leur URL.
 | 
						||
      Ils sont en g<>n<EFBFBD>ral d<>finis via les directives <code class="directive"><a href="#proxypass">ProxyPass</a></code> ou <code class="directive"><a href="#proxypassmatch">ProxyPassMatch</a></code> lorsqu'on les
 | 
						||
      utilise dans le cadre d'un mandataire inverse :</p>
 | 
						||
 | 
						||
      <div class="example"><pre class="prettyprint lang-config">ProxyPass "/example" "http://backend.example.com" connectiontimeout=5 timeout=30</pre>
 | 
						||
</div>
 | 
						||
      
 | 
						||
 | 
						||
      <p>Cette directive va cr<63>er un worker associ<63> <20> l'URL du serveur original
 | 
						||
      <code>http://backend.example.com</code>, qui utilisera les valeurs de
 | 
						||
      timeout donn<6E>es. Toutes les sp<73>cifications de timeouts utilisent la
 | 
						||
      syntaxe <a href="directive-dict.html#Syntax">time-interval</a>. Lorsqu'ils
 | 
						||
      sont utilis<69>s dans le cadre d'un mandataire direct, les workers sont en
 | 
						||
      g<>n<EFBFBD>ral d<>finis via la directive <code class="directive"><a href="#proxyset">ProxySet</a></code> :</p>
 | 
						||
 | 
						||
      <div class="example"><pre class="prettyprint lang-config">ProxySet http://backend.example.com connectiontimeout=5 timeout=30</pre>
 | 
						||
</div>
 | 
						||
      
 | 
						||
 | 
						||
      <p>ou encore via les directives <code class="directive"><a href="#proxy">Proxy</a></code> et <code class="directive"><a href="#proxyset">ProxySet</a></code> :</p>
 | 
						||
 | 
						||
      <pre class="prettyprint lang-config"><Proxy http://backend.example.com>
 | 
						||
  ProxySet connectiontimeout=5 timeout=30
 | 
						||
</Proxy></pre>
 | 
						||
 | 
						||
 | 
						||
      <p>L'utilisation de workers d<>finis explicitement dans le mode
 | 
						||
      mandataire direct n'est pas tr<74>s courante, car les mandataires
 | 
						||
      directs communiquent en g<>n<EFBFBD>ral avec de nombreux serveurs
 | 
						||
      originaux. La cr<63>ation explicite de workers pour certains serveurs
 | 
						||
      originaux peut cependant s'av<61>rer utile si ces serveurs sont
 | 
						||
      tr<74>s souvent sollicit<69>s. A leur niveau, les workers explicitement
 | 
						||
      d<>finis ne poss<73>dent aucune notion de mandataire direct ou
 | 
						||
      inverse. Ils encapsulent un concept de communication commun avec
 | 
						||
      les serveurs originaux. Un worker cr<63><72> via la directive <code class="directive"><a href="#proxypass">ProxyPass</a></code> pour <20>tre utilis<69> dans le
 | 
						||
      cadre d'un mandataire inverse sera aussi utilis<69> dans le cadre
 | 
						||
      d'un mandataire directe chaque fois que l'URL vers le serveur
 | 
						||
      original correspondra <20> l'URL du worker, et vice versa.</p>
 | 
						||
 | 
						||
      <p>L'URL qui identifie un worker correspond <20> l'URL de son serveur
 | 
						||
      original, y compris un <20>ventuel chemin donn<6E> :</p>
 | 
						||
 | 
						||
      <pre class="prettyprint lang-config">ProxyPass "/examples" "http://backend.example.com/examples"
 | 
						||
ProxyPass "/docs" "http://backend.example.com/docs"</pre>
 | 
						||
 | 
						||
 | 
						||
      <p>Dans cet exemple, deux workers diff<66>rents sont d<>finis, chacun
 | 
						||
      d'eux utilisant des configurations et jeux de connexions
 | 
						||
      s<>par<61>s.</p>
 | 
						||
 | 
						||
      <div class="warning"><h3>Partage de workers</h3>
 | 
						||
        <p>Le partage de workers intervient lorsque les URLs des workers
 | 
						||
	s'entrecoupent, ce qui arrive lorsque l'URL d'un worker
 | 
						||
	correspond au d<>but de l'URL d'un autre worker d<>fini plus loin
 | 
						||
	dans le fichier de configuration. Dans l'exemple suivant,</p>
 | 
						||
 | 
						||
        <pre class="prettyprint lang-config">ProxyPass "/apps" "http://backend.example.com/" timeout=60
 | 
						||
ProxyPass "/examples" "http://backend.example.com/examples" timeout=10</pre>
 | 
						||
 | 
						||
 | 
						||
        <p>le second worker n'est pas vraiment cr<63><72>. C'est le premier
 | 
						||
	worker qui est en fait utilis<69>. L'avantage de ceci r<>side dans
 | 
						||
	le fait qu'il n'existe qu'un seul jeu de connexions, ces
 | 
						||
	derni<6E>res <20>tant donc r<>utilis<69>es plus souvent. Notez que tous
 | 
						||
	les attributs de configuration d<>finis explicitement pour le
 | 
						||
	deuxi<78>me worker seront ignor<6F>s, ce qui sera journalis<69> en tant
 | 
						||
	qu'avertissement. Ainsi, dans l'exemple ci-dessus, la valeur de
 | 
						||
	timeout retenue pour l'URL <code>/exemples</code> sera
 | 
						||
	<code>60</code>, et non <code>10</code> !</p>
 | 
						||
 | 
						||
        <p>Si vous voulez emp<6D>cher le partage de workers, classez vos
 | 
						||
	d<>finitions de workers selon la longueur des URLs, de la plus
 | 
						||
	longue <20> la plus courte. Si au contraire vous voulez favoriser
 | 
						||
	ce partage, utilisez l'ordre de classement inverse. Voir aussi
 | 
						||
	l'avertissement <20> propos de l'ordre de classement des directives
 | 
						||
	<code class="directive"><a href="#proxypass">ProxyPass</a></code>.</p>
 | 
						||
 | 
						||
      </div> 
 | 
						||
 | 
						||
      <div class="warning"><h3>Nom d'h<>te dans l'URL</h3>
 | 
						||
        <p>Le nom d'h<>te doit commencer par une lettre [a-z]. Par exemple :</p>
 | 
						||
        <pre class="prettyprint lang-config">ProxyPass "/apps"     "http://127"</pre>
 | 
						||
 | 
						||
        <p>n'est pas valide et provoquera une erreur si une requ<71>te correspond
 | 
						||
	au chemin.</p>
 | 
						||
      </div>
 | 
						||
 | 
						||
      <p>Les workers d<>finis explicitement sont de deux sortes :
 | 
						||
      <dfn>workers directs</dfn> et <dfn>workers de r<>partition (de
 | 
						||
      charge)</dfn>. Ils supportent de nombreux attributs de
 | 
						||
      configuration importants d<>crits dans la directive <code class="directive"><a href="#proxypass">ProxyPass</a></code>. Ces m<>mes attributs
 | 
						||
      peuvent aussi <20>tre d<>finis via la directive <code class="directive"><a href="#proxyset">ProxySet</a></code>.</p>
 | 
						||
 | 
						||
      <p>Le jeu d'options disponibles pour un worker direct d<>pend du
 | 
						||
      protocole sp<73>cifi<66> dans l'URL du serveur original. Les protocoles
 | 
						||
      disponibles comprennent <code>ajp</code>, <code>fcgi</code>,
 | 
						||
      <code>ftp</code>, <code>http</code> et <code>scgi</code>.</p>
 | 
						||
 | 
						||
      <p>Les workers de r<>partition sont des workers virtuels qui
 | 
						||
      utilisent les workers directs, connus comme faisant partie de leurs
 | 
						||
      membres, pour le traitement effectif des requ<71>tes. Chaque
 | 
						||
      r<>partiteur peut comporter plusieurs membres. Lorsqu'il traite une
 | 
						||
      requ<71>te, il choisit un de ses membres en fonction de l'algorithme
 | 
						||
      de r<>partition de charge d<>fini.</p>
 | 
						||
 | 
						||
      <p>Un worker de r<>partition est cr<63><72> si son URL de worker comporte
 | 
						||
      <code>balancer</code> comme indicateur de protocole. L'URL du
 | 
						||
      r<>partiteur permet d'identifier de mani<6E>re unique le worker de
 | 
						||
      r<>partition. La directive <code class="directive"><a href="#balancermember">BalancerMember</a></code> permet d'ajouter des
 | 
						||
      membres au r<>partiteur.</p>
 | 
						||
 | 
						||
      <div class="note"><h3>R<>solution DNS pour les domaines originaux</h3>
 | 
						||
      <p>La r<>solution DNS s'effectue lorsque le socket vers le
 | 
						||
      domaine original est cr<63><72> pour la premi<6D>re fois. Lorsque la r<>utilisation
 | 
						||
      des connexions est activ<69>e, chaque domaine d'arri<72>re-plan n'est r<>solu qu'une
 | 
						||
      seule fois pour chaque processus enfant, et cette r<>solution est mise en
 | 
						||
      cache pour toutes les connexions ult<6C>rieures jusqu'<27> ce que le processus enfant
 | 
						||
      soit recycl<63>. Ce comportement doit <20>tre pris en consid<69>ration lorsqu'on
 | 
						||
      planifie des t<>ches de maintenance du DNS impactant les domaines
 | 
						||
      d'arri<72>re-plan. Veuillez aussi vous reporter aux param<61>tres de la
 | 
						||
      directive <code class="directive"><a href="#proxypass">ProxyPass</a></code> pour plus de
 | 
						||
      d<>tails <20> propos de la r<>utilisation des connexions.
 | 
						||
        </p>
 | 
						||
      </div>
 | 
						||
 | 
						||
    </div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
 | 
						||
<div class="section">
 | 
						||
<h2><a name="access" id="access">Contr<74>ler l'acc<63>s <20> votre
 | 
						||
    mandataire</a></h2>
 | 
						||
      <p>Vous pouvez restreindre l'acc<63>s <20> votre mandataire via le bloc
 | 
						||
      de contr<74>le <code class="directive"><a href="#proxy"><Proxy></a></code> comme dans
 | 
						||
      l'exemple suivant :</p>
 | 
						||
 | 
						||
      <pre class="prettyprint lang-config"><Proxy *>
 | 
						||
  Require ip 192.168.0
 | 
						||
</Proxy></pre>
 | 
						||
 | 
						||
 | 
						||
      <p>Pour plus de d<>tails sur les directives de contr<74>le d'acc<63>s,
 | 
						||
      voir la documentation du module
 | 
						||
      <code class="module"><a href="../mod/mod_authz_host.html">mod_authz_host</a></code>.</p>
 | 
						||
 | 
						||
      <p>Restreindre l'acc<63>s de mani<6E>re stricte est essentiel si vous
 | 
						||
      mettez en oeuvre un mandataire direct (en d<>finissant la directive
 | 
						||
      <code class="directive"><a href="#proxyrequests">ProxyRequests</a></code> <20> "on").
 | 
						||
      Dans le cas contraire, votre serveur pourrait <20>tre utilis<69> par
 | 
						||
      n'importe quel client pour acc<63>der <20> des serveurs quelconques,
 | 
						||
      tout en masquant sa v<>ritable identit<69>. Ceci repr<70>sente un danger
 | 
						||
      non seulement pour votre r<>seau, mais aussi pour l'Internet au
 | 
						||
      sens large. Dans le cas de la mise en oeuvre d'un mandataire
 | 
						||
      inverse (en utilisant la directive <code class="directive"><a href="#proxypass">ProxyPass</a></code> avec <code>ProxyRequests Off</code>), le contr<74>le
 | 
						||
      d'acc<63>s est moins critique car les clients ne peuvent contacter
 | 
						||
      que les serveurs que vous avez sp<73>cifi<66>s.</p>
 | 
						||
 | 
						||
      <p><strong>Voir aussi</strong> la variable d'environnement <a href="mod_proxy_http.html#env">Proxy-Chain-Auth</a>.</p>
 | 
						||
 | 
						||
    </div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
 | 
						||
<div class="section">
 | 
						||
<h2><a name="startup" id="startup">Ralentissement au d<>marrage</a></h2>
 | 
						||
      <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
 | 
						||
      IP puis ces derni<6E>res mises en cache au cours du d<>marrage
 | 
						||
      <20> des fins de tests de comparaisons ult<6C>rieurs. Ce processus peut
 | 
						||
      durer plusieurs secondes (ou d'avantage) en fonction de la vitesse
 | 
						||
      <20> laquelle s'effectue la r<>solution des noms d'h<>tes.</p>
 | 
						||
    </div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
 | 
						||
<div class="section">
 | 
						||
<h2><a name="intranet" id="intranet">Mandataire en Intranet</a></h2>
 | 
						||
      <p>Un serveur mandataire Apache httpd situ<74> <20> l'int<6E>rieur d'un Intranet
 | 
						||
      doit faire suivre les requ<71>tes destin<69>es <20> un serveur externe <20>
 | 
						||
      travers le pare-feu de l'entreprise (pour ce faire, d<>finissez la
 | 
						||
      directive <code class="directive"><a href="#proxyremote">ProxyRemote</a></code> de
 | 
						||
      fa<66>on <20> ce qu'elle fasse suivre le <var>protocole</var> concern<72>
 | 
						||
      vers le mandataire du pare-feu). Cependant, lorsqu'il doit acc<63>der
 | 
						||
      <20> des ressources situ<74>es dans l'Intranet, il peut se passer du
 | 
						||
      pare-feu pour acc<63>der aux serveurs. A cet effet, la directive
 | 
						||
      <code class="directive"><a href="#noproxy">NoProxy</a></code> permet de
 | 
						||
      sp<73>cifier quels h<>tes appartiennent <20> l'Intranet et peuvent donc
 | 
						||
      <20>tre acc<63>d<EFBFBD>s directement.</p>
 | 
						||
 | 
						||
      <p>Les utilisateurs d'un Intranet ont tendance <20> oublier le nom du
 | 
						||
      domaine local dans leurs requ<71>tes WWW, et demandent par exemple
 | 
						||
      "http://un-serveur/" au lieu de
 | 
						||
      <code>http://un-serveur.example.com/</code>. Certains serveurs
 | 
						||
      mandataires commerciaux acceptent ce genre de requ<71>te et les
 | 
						||
      traitent simplement en utilisant un nom de domaine local
 | 
						||
      implicite. Lorsque la directive <code class="directive"><a href="#proxydomain">ProxyDomain</a></code> est utilis<69>e et si le
 | 
						||
      serveur est <a href="#proxyrequests">configur<75> comme
 | 
						||
      mandataire</a>, Apache httpd peut renvoyer une r<>ponse de redirection et
 | 
						||
      ainsi fournir au client l'adresse de serveur correcte,
 | 
						||
      enti<74>rement qualifi<66>e. C'est la m<>thode <20> privil<69>gier car le
 | 
						||
      fichier des marque-pages de l'utilisateur contiendra alors des
 | 
						||
      noms de serveurs enti<74>rement qualifi<66>s.</p>
 | 
						||
    </div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
 | 
						||
<div class="section">
 | 
						||
<h2><a name="envsettings" id="envsettings">Ajustements relatifs au
 | 
						||
    protocole</a></h2>
 | 
						||
      <p>Pour les cas o<> <code class="module"><a href="../mod/mod_proxy.html">mod_proxy</a></code> envoie des requ<71>tes
 | 
						||
      vers un serveur qui n'impl<70>mente pas correctement les connexions
 | 
						||
      persistantes ou le protocole HTTP/1.1, il existe deux variables
 | 
						||
      d'environnement qui permettent de forcer les requ<71>tes <20> utiliser
 | 
						||
      le protocole HTTP/1.0 avec connexions non persistantes. Elles
 | 
						||
      peuvent <20>tre d<>finies via la directive <code class="directive"><a href="../mod/mod_env.html#setenv">SetEnv</a></code>.</p>
 | 
						||
 | 
						||
      <p>Il s'agit des variables <code>force-proxy-request-1.0</code> et
 | 
						||
      <code>proxy-nokeepalive</code>.</p>
 | 
						||
 | 
						||
      <pre class="prettyprint lang-config"><Location "/buggyappserver/">
 | 
						||
  ProxyPass "http://buggyappserver:7001/foo/"
 | 
						||
  SetEnv force-proxy-request-1.0 1
 | 
						||
  SetEnv proxy-nokeepalive 1
 | 
						||
</Location></pre>
 | 
						||
 | 
						||
 | 
						||
      <p>A partir de la version 2.4.26 du serveur HTTP Apache, la d<>finition de
 | 
						||
      la variable d'environnement "no-proxy" permet de d<>sactiver
 | 
						||
      <code class="module"><a href="../mod/mod_proxy.html">mod_proxy</a></code> dans le traitement de la requ<71>te courante.
 | 
						||
      Cette variable doit <20>tre d<>finie via la directive <code class="directive"><a href="../mod/mod_setenvif.html#setenvif">SetEnvIf</a></code> car la directive <code class="directive"><a href="../mod/mod_env.html#setenv">SetEnv</a></code> n'est pas <20>valu<6C>e assez t<>t.</p>
 | 
						||
 | 
						||
    </div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
 | 
						||
<div class="section">
 | 
						||
<h2><a name="request-bodies" id="request-bodies">Corps de requ<71>tes</a></h2>
 | 
						||
 | 
						||
    <p>Certaines m<>thodes de requ<71>tes comme POST comportent un corps de
 | 
						||
    requ<71>te. Le protocole HTTP stipule que les requ<71>tes qui comportent
 | 
						||
    un corps doivent soit utiliser un codage de transmission
 | 
						||
    fractionn<6E>e (chunked transfer encoding), soit envoyer un en-t<>te de requ<71>te
 | 
						||
    <code>Content-Length</code>. Lorsqu'il fait suivre ce genre de
 | 
						||
    requ<71>te vers le serveur demand<6E>, <code class="module"><a href="../mod/mod_proxy_http.html">mod_proxy_http</a></code>
 | 
						||
    s'efforce toujours d'envoyer l'en-t<>te <code>Content-Length</code>.
 | 
						||
    Par contre, si la taille du corps est importante, et si la requ<71>te
 | 
						||
    originale utilise un codage <20> fractionnement, ce dernier peut aussi
 | 
						||
    <20>tre utilis<69> dans la requ<71>te montante. Ce comportement peut <20>tre
 | 
						||
    contr<74>l<EFBFBD> <20> l'aide de <a href="../env.html">variables
 | 
						||
    d'environnement</a>. Ainsi, si elle est d<>finie, la variable
 | 
						||
    <code>proxy-sendcl</code> assure une compatibilit<69> maximale avec les
 | 
						||
    serveurs demand<6E>s en imposant l'envoi de l'en-t<>te
 | 
						||
    <code>Content-Length</code>, alors que
 | 
						||
    <code>proxy-sendchunked</code> diminue la consommation de ressources
 | 
						||
    en imposant l'utilisation d'un codage <20> fractionnement.</p>
 | 
						||
 | 
						||
    <p>Dans certaines circonstances, le serveur doit mettre en file
 | 
						||
    d'attente sur disque les corps de requ<71>tes afin de satisfaire le
 | 
						||
    traitement demand<6E> des corps de requ<71>tes. Par exemple, cette mise en
 | 
						||
    file d'attente se produira si le corps original a <20>t<EFBFBD> envoy<6F> selon un
 | 
						||
    codage morcel<65> (et poss<73>de une taille importante), alors que
 | 
						||
    l'administrateur a demand<6E> que les requ<71>tes du serveur
 | 
						||
    d'arri<72>re-plan soient envoy<6F>es avec l'en-t<>te Content-Length ou en
 | 
						||
    HTTP/1.0. Cette mise en file d'attente se produira aussi si le corps
 | 
						||
    de la requ<71>te contient d<>j<EFBFBD> un en-t<>te Content-Length, alors que le
 | 
						||
    serveur est configur<75> pour filtrer les corps des requ<71>tes entrantes.</p>
 | 
						||
 | 
						||
    <p>La directive <code class="directive"><a href="../mod/core.html#limitrequestbody">LimitRequestBody</a></code> ne s'applique qu'aux
 | 
						||
    corps de requ<71>tes que le serveur met en file d'attente sur disque.</p>
 | 
						||
 | 
						||
    </div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
 | 
						||
<div class="section">
 | 
						||
<h2><a name="x-headers" id="x-headers">En-t<>tes de requ<71>te du mandataire
 | 
						||
    inverse</a></h2>
 | 
						||
 | 
						||
    <p>Lorsqu'il est configur<75> en mode mandataire inverse (en utilisant
 | 
						||
    par exemple la directive <code class="directive"><a href="#proxypass">ProxyPass</a></code>),
 | 
						||
    <code class="module"><a href="../mod/mod_proxy_http.html">mod_proxy_http</a></code> ajoute plusieurs en-t<>tes de requ<71>te
 | 
						||
    afin de transmettre des informations au serveur demand<6E>. Ces
 | 
						||
    en-t<>tes sont les suivants :</p>
 | 
						||
 | 
						||
    <dl>
 | 
						||
      <dt><code>X-Forwarded-For</code></dt>
 | 
						||
      <dd>L'adresse IP du client.</dd>
 | 
						||
      <dt><code>X-Forwarded-Host</code></dt>
 | 
						||
      <dd>L'h<>te d'origine demand<6E> par le client dans l'en-t<>te de
 | 
						||
      requ<71>te HTTP <code>Host</code>.</dd>
 | 
						||
      <dt><code>X-Forwarded-Server</code></dt>
 | 
						||
      <dd>Le nom d'h<>te du serveur mandataire.</dd>
 | 
						||
    </dl>
 | 
						||
 | 
						||
    <p>Ces en-t<>tes doivent <20>tre utilis<69>s avec pr<70>cautions sur le
 | 
						||
    serveur demand<6E>, car ils contiendront plus d'une valeur (s<>par<61>es
 | 
						||
    par des virgules) si la requ<71>te originale contenait d<>j<EFBFBD> un de ces
 | 
						||
    en-t<>tes. Par exemple, vous pouvez utiliser
 | 
						||
    <code>%{X-Forwarded-For}i</code> dans la cha<68>ne de format du journal
 | 
						||
    du serveur demand<6E> pour enregistrer les adresses IP des clients
 | 
						||
    originaux, mais il est possible que vous obteniez plusieurs adresses
 | 
						||
    si la requ<71>te passe <20> travers plusieurs mandataires.</p>
 | 
						||
 | 
						||
    <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
 | 
						||
    de contr<74>ler d'autres en-t<>tes de requ<71>te.</p>
 | 
						||
 | 
						||
    <p>Note : Si vous devez ajouter des en-t<>tes particuliers <20> la
 | 
						||
    requ<71>te mandat<61>e, utilisez la directive  <code class="directive"><a href="../mod/mod_headers.html#requestheader">RequestHeader</a></code>.</p>
 | 
						||
 | 
						||
   </div>
 | 
						||
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
 | 
						||
<div class="directive-section"><h2><a name="balancergrowth" id="balancergrowth">Directive</a> <a name="BalancerGrowth" id="BalancerGrowth">BalancerGrowth</a></h2>
 | 
						||
<table class="directive">
 | 
						||
<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Nombre de membres suppl<70>mentaires pouvant <20>tre ajout<75>s
 | 
						||
apr<EFBFBD>s la configuration initiale</td></tr>
 | 
						||
<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>BalancerGrowth <var>#</var></code></td></tr>
 | 
						||
<tr><th><a href="directive-dict.html#Default">D<>faut:</a></th><td><code>BalancerGrowth 5</code></td></tr>
 | 
						||
<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur, serveur virtuel</td></tr>
 | 
						||
<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
 | 
						||
<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_proxy</td></tr>
 | 
						||
<tr><th><a href="directive-dict.html#Compatibility">Compatibilit<69>:</a></th><td>BalancerGrowth est disponible depuis la version 2.3.13 du
 | 
						||
serveur HTTP Apache</td></tr>
 | 
						||
</table>
 | 
						||
    <p>Cette directive permet de d<>finir le nombre de
 | 
						||
    r<>partiteurs de charge pouvant
 | 
						||
    <20>tre ajout<75>s <20> ceux d<>j<EFBFBD> configur<75>s pour un
 | 
						||
    serveur virtuel. Elle n'est active que si au minimum un r<>partiteur
 | 
						||
    a <20>t<EFBFBD> pr<70>configur<75>.</p>
 | 
						||
 | 
						||
</div>
 | 
						||
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
 | 
						||
<div class="directive-section"><h2><a name="balancerinherit" id="balancerinherit">Directive</a> <a name="BalancerInherit" id="BalancerInherit">BalancerInherit</a></h2>
 | 
						||
<table class="directive">
 | 
						||
<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>H<>ritage des membres du groupes de r<>partition de
 | 
						||
    charge du mandataire d<>finis au niveau du serveur principal</td></tr>
 | 
						||
<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>BalancerInherit On|Off</code></td></tr>
 | 
						||
<tr><th><a href="directive-dict.html#Default">D<>faut:</a></th><td><code>BalancerInherit On</code></td></tr>
 | 
						||
<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur, serveur virtuel</td></tr>
 | 
						||
<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
 | 
						||
<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_proxy</td></tr>
 | 
						||
<tr><th><a href="directive-dict.html#Compatibility">Compatibilit<69>:</a></th><td>Disponible <20> partir de la version 2.4.5 du serveur
 | 
						||
    HTTP Apache.</td></tr>
 | 
						||
</table>
 | 
						||
        <p>Cette directive permet d'attribuer au serveur virtuel courant
 | 
						||
	l'h<>ritage des membres de groupes de r<>partition de charge
 | 
						||
	d<>finis au niveau du serveur
 | 
						||
	principal. Elle ne doit pas <20>tre activ<69>e si vous
 | 
						||
	utilisez la fonctionnalit<69> de modifications dynamiques du
 | 
						||
	gestionnaire de r<>partition de charge (Balancer Manager) pour
 | 
						||
	<09>viter des probl<62>mes et des comportements inattendus.</p>
 | 
						||
        <p>Les d<>finitions au niveau du serveur principal constituent
 | 
						||
	les d<>finitions par d<>faut au niveau des serveurs virtuels.</p>
 | 
						||
	<p>La d<>sactivation de ProxyPassInherit d<>sactive aussi la
 | 
						||
	directive <code class="directive"><a href="#balancerinherit">BalancerInherit</a></code>.</p>
 | 
						||
    
 | 
						||
</div>
 | 
						||
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
 | 
						||
<div class="directive-section"><h2><a name="balancermember" id="balancermember">Directive</a> <a name="BalancerMember" id="BalancerMember">BalancerMember</a></h2>
 | 
						||
<table class="directive">
 | 
						||
<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Ajoute un membre <20> un groupe de r<>partition de
 | 
						||
charge</td></tr>
 | 
						||
<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>BalancerMember [<var>balancerurl</var>] <var>url</var> [<var>cl<63>=valeur [cl<63>=valeur ...]]</var></code></td></tr>
 | 
						||
<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>r<>pertoire</td></tr>
 | 
						||
<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
 | 
						||
<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_proxy</td></tr>
 | 
						||
</table>
 | 
						||
    <p>Cette directive permet d'ajouter un membre <20> un groupe de
 | 
						||
    r<>partition de charge. Elle peut se trouver dans un conteneur
 | 
						||
    <code><Proxy <var>balancer://</var>...></code>, et accepte
 | 
						||
    tous les param<61>tres de paires cl<63>/valeur que supporte la directive
 | 
						||
    <code class="directive"><a href="#proxypass">ProxyPass</a></code>.</p>
 | 
						||
    <p>La directive <code class="directive">BalancerMember</code> accepte un param<61>tre
 | 
						||
    suppl<70>mentaire : <var>loadfactor</var>. Il s'agit du facteur de
 | 
						||
    charge du membre - un nombre entre 1.0 (valeur par d<>faut) et 100.0, qui
 | 
						||
    d<>finit la charge <20> appliquer au membre en question.</p>
 | 
						||
    <p>L'argument <var>balancerurl</var> n'est requis que s'il ne se trouve pas
 | 
						||
    d<>j<EFBFBD> dans la directive de conteneur <code><Proxy
 | 
						||
    <var>balancer://</var>...></code>. Il correspond <20> l'URL d'un
 | 
						||
    r<>partiteur de charge d<>fini par une directive <code class="directive"><a href="#proxypass">ProxyPass</a></code>.</p>
 | 
						||
    <p>La partie chemin de l'URL du membre du groupe de r<>partition de
 | 
						||
    charge dans toute directive de conteneur <code><Proxy
 | 
						||
    <var>balancer://</var>...></code> est ignor<6F>e.</p>
 | 
						||
    <p>Les slashes de fin doivent normalement <20>tre supprim<69>s de l'URL
 | 
						||
    d'un <code class="directive">BalancerMember</code>.</p>
 | 
						||
 | 
						||
</div>
 | 
						||
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
 | 
						||
<div class="directive-section"><h2><a name="balancerpersist" id="balancerpersist">Directive</a> <a name="BalancerPersist" id="BalancerPersist">BalancerPersist</a></h2>
 | 
						||
<table class="directive">
 | 
						||
<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Tente de conserver les changements effectu<74>s par le
 | 
						||
    gestionnaire de r<>partition de charge apr<70>s un red<65>marrage du
 | 
						||
    serveur.</td></tr>
 | 
						||
<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>BalancerPersist On|Off</code></td></tr>
 | 
						||
<tr><th><a href="directive-dict.html#Default">D<>faut:</a></th><td><code>BalancerPersist Off</code></td></tr>
 | 
						||
<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur, serveur virtuel</td></tr>
 | 
						||
<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
 | 
						||
<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_proxy</td></tr>
 | 
						||
<tr><th><a href="directive-dict.html#Compatibility">Compatibilit<69>:</a></th><td>BalancerPersist n'est disponible qu'<27> partir de la
 | 
						||
    version 2.4.4 du serveur HTTP Apache.</td></tr>
 | 
						||
</table>
 | 
						||
        <p>Cette directive permet de conserver le contenu de l'espace
 | 
						||
	m<>moire partag<61> associ<63> aux r<>partiteurs de charge et <20> leurs
 | 
						||
	membres apr<70>s un red<65>marrage du serveur. Ces modifications
 | 
						||
	locales ne sont ainsi pas perdues lors des transitions d'<27>tat
 | 
						||
	dues <20> un red<65>marrage.</p>
 | 
						||
    
 | 
						||
</div>
 | 
						||
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
 | 
						||
<div class="directive-section"><h2><a name="noproxy" id="noproxy">Directive</a> <a name="NoProxy" id="NoProxy">NoProxy</a></h2>
 | 
						||
<table class="directive">
 | 
						||
<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Serveurs, domaines ou r<>seaux auquels on se connectera
 | 
						||
directement</td></tr>
 | 
						||
<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>NoProxy <var>domaine</var> [<var>domaine</var>] ...</code></td></tr>
 | 
						||
<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur, serveur virtuel</td></tr>
 | 
						||
<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
 | 
						||
<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_proxy</td></tr>
 | 
						||
</table>
 | 
						||
    <p>Cette directive n'a d'utilit<69> que pour les serveurs mandataires
 | 
						||
    Apache httpd au sein d'Intranets. La directive
 | 
						||
    <code class="directive">NoProxy</code> permet de sp<73>cifier une liste de
 | 
						||
    sous-r<>seaux, d'adresses IP, de serveurs et/ou de domaines s<>par<61>s
 | 
						||
    par des espaces. Une requ<71>te pour un serveur qui correspond <20> un ou
 | 
						||
    plusieurs crit<69>res sera toujours servie par ce serveur directement,
 | 
						||
    sans <20>tre redirig<69>e vers le(s) serveur(s) mandataire(s) d<>fini(s) par
 | 
						||
    la directive <code class="directive"><a href="#proxyremote">ProxyRemote</a></code>.</p>
 | 
						||
 | 
						||
    <div class="example"><h3>Exemple</h3><pre class="prettyprint lang-config">ProxyRemote  *  http://firewall.example.com:81
 | 
						||
NoProxy         .example.com 192.168.112.0/21</pre>
 | 
						||
</div>
 | 
						||
 | 
						||
    <p>Le type des arguments <var>serveur</var> de la directive
 | 
						||
    <code class="directive">NoProxy</code> appartiennent <20> la liste suivante
 | 
						||
    :</p>
 | 
						||
 | 
						||
    <dl>
 | 
						||
    
 | 
						||
    <dt><var><a name="domain" id="domain">Domaine</a></var></dt>
 | 
						||
    <dd>
 | 
						||
    <p>Un <dfn>domaine</dfn> est ici un nom de domaine DNS partiellement
 | 
						||
    qualifi<66> pr<70>c<EFBFBD>d<EFBFBD> d'un point. Il repr<70>sente une liste de serveurs qui
 | 
						||
    appartiennent logiquement au m<>me domaine ou <20> la m<>me zonz DNS
 | 
						||
    (en d'autres termes, les nom des serveurs se terminent tous par
 | 
						||
    <var>domaine</var>).</p>
 | 
						||
 | 
						||
    <div class="example"><h3>Exemple</h3><p><code>
 | 
						||
      .com .example.org.
 | 
						||
    </code></p></div>
 | 
						||
 | 
						||
    <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 <20> la fois
 | 
						||
    syntaxique et
 | 
						||
    s<>mantique, un domaine DNS pouvant aussi avoir un enregistrement DNS
 | 
						||
    de type A !), les <var>domaine</var>s sont toujours sp<73>cifi<66>s en les
 | 
						||
    pr<70>fixant par un point.</p>
 | 
						||
 | 
						||
    <div class="note"><h3>Note</h3>
 | 
						||
      <p>Les comparaisons de noms de domaines s'effectuent sans tenir
 | 
						||
      compte de la casse, et les parties droites des <var>Domaine</var>s
 | 
						||
      sont toujours cens<6E>es correspondre <20> la racine de l'arborescence
 | 
						||
      DNS, si bien que les domaines <code>.ExEmple.com</code> et
 | 
						||
      <code>.example.com.</code> (notez le point <20> la fin du nom) sont
 | 
						||
      consid<69>r<EFBFBD>s comme identiques. Comme une comparaison de domaines ne
 | 
						||
      n<>cessite pas de recherche DNS, elle est beaucoup plus efficace
 | 
						||
      qu'une comparaison de sous-r<>seaux.</p>
 | 
						||
    </div></dd>
 | 
						||
 | 
						||
    
 | 
						||
    <dt><var><a name="subnet" id="subnet">Sous-r<>seau</a></var></dt>
 | 
						||
    <dd>
 | 
						||
    <p>Un <dfn>Sous-r<>seau</dfn> est une adresse internet partiellement
 | 
						||
    qualifi<66>e sous forme num<75>rique (quatre nombres s<>par<61>s par des
 | 
						||
    points), optionnellement suivie d'un slash et du masque de
 | 
						||
    sous-r<>seau sp<73>cifiant le nombre de bits significatifs dans le
 | 
						||
    <var>Sous-r<>seau</var>. Il repr<70>sente un sous-r<>seau de serveurs qui
 | 
						||
    peuvent <20>tre atteints depuis la m<>me interface r<>seau. En l'absence
 | 
						||
    de masque de sous-r<>seau explicite, il est sous-entendu que les
 | 
						||
    digits manquants (ou caract<63>res 0) de fin sp<73>cifient le masque de
 | 
						||
    sous-r<>seau (Dans ce cas, le masque de sous-r<>seau ne peut <20>tre
 | 
						||
    qu'un multiple de 8). Voici quelques exemples :</p>
 | 
						||
 | 
						||
    <dl>
 | 
						||
    <dt><code>192.168</code> ou <code>192.168.0.0</code></dt>
 | 
						||
    <dd>le sous-r<>seau 192.168.0.0 avec un masque de sous-r<>seau
 | 
						||
    implicite de 16 bits significatifs (parfois exprim<69> sous la forme
 | 
						||
    <code>255.255.0.0</code>)</dd>
 | 
						||
    <dt><code>192.168.112.0/21</code></dt>
 | 
						||
    <dd>le sous-r<>seau <code>192.168.112.0/21</code> avec un masque de
 | 
						||
    sous-r<>seau implicite de 21 bits significatifs (parfois exprim<69>
 | 
						||
    sous la forme<code>255.255.248.0</code>)</dd>
 | 
						||
    </dl>
 | 
						||
 | 
						||
    <p>Comme cas extr<74>mes, un <em>Sous-r<>seau</em> avec un masque de
 | 
						||
    sous-r<>seau de 32 bits significatifs est <20>quivalent <20> une <var><a href="#ipaddr">adresse IP</a></var>, alors qu'un <em>Sous-r<>seau</em> avec un masque de
 | 
						||
    sous-r<>seau de 0 bit significatif (c'est <20> dire 0.0.0.0/0) est
 | 
						||
    identique <20> la constante <var>_Default_</var>, et peut correspondre
 | 
						||
    <20> toute adresse IP.</p></dd>
 | 
						||
 | 
						||
    
 | 
						||
    <dt><var><a name="ipaddr" id="ipaddr">Adresse IP</a></var></dt>
 | 
						||
    <dd>
 | 
						||
    <p>Une <dfn>Adresse IP</dfn> est une adresse internet pleinement
 | 
						||
    qualifi<66>e sous forme num<75>rique (quatre nombres s<>par<61>s par des
 | 
						||
    points). En g<>n<EFBFBD>ral, cette adresse repr<70>sente un serveur, mais elle
 | 
						||
    ne doit pas n<>cessairement correspondre <20> un nom de domaine DNS.</p>
 | 
						||
    <div class="example"><h3>Exemple</h3><p><code>
 | 
						||
      192.168.123.7
 | 
						||
    </code></p></div>
 | 
						||
 | 
						||
    <div class="note"><h3>Note</h3>
 | 
						||
      <p>Une <dfn>Adresse IP</dfn> ne n<>cessite pas de r<>solution DNS,
 | 
						||
      et peut ainsi s'av<61>rer plus efficace quant aux performances
 | 
						||
      d'Apache.</p>
 | 
						||
    </div></dd>
 | 
						||
 | 
						||
    
 | 
						||
    <dt><var><a name="hostname" id="hostname">Nom de serveur</a></var></dt>
 | 
						||
    <dd>
 | 
						||
    <p>Un <dfn>Nom de serveur</dfn> est un nom de domaine DNS pleinement
 | 
						||
    qualifi<66> qui peut <20>tre r<>solu en une ou plusieurs adresses IP par le
 | 
						||
    service de noms de domaines DNS. Il repr<70>sente un h<>te logique (par
 | 
						||
    opposition aux <var><a href="#domain">Domaine</a></var>s, voir
 | 
						||
    ci-dessus), et doit pouvoir <20>tre r<>solu en une ou plusieurs <var><a href="#ipaddr">adresses IP</a></var> (ou souvent en une liste
 | 
						||
    d'h<>tes avec diff<66>rentes <var><a href="#ipaddr">adresses
 | 
						||
    IP</a></var>).</p>
 | 
						||
 | 
						||
    <div class="example"><h3>Exemples</h3><p><code>
 | 
						||
      prep.ai.example.edu<br />
 | 
						||
      www.example.org
 | 
						||
    </code></p></div>
 | 
						||
 | 
						||
    <div class="note"><h3>Note</h3>
 | 
						||
      <p>Dans de nombreuses situations, il est plus efficace de
 | 
						||
      sp<73>cifier une <var><a href="#ipaddr">adresse IP</a></var> qu'un
 | 
						||
      <var>Nom de serveur</var> car cela <20>vite d'avoir <20> effectuer une
 | 
						||
      recherche DNS. La r<>solution de nom dans Apache httpd peut prendre un
 | 
						||
      temps tr<74>s long lorsque la connexion avec le serveur de noms
 | 
						||
      utilise une liaison PPP lente.</p>
 | 
						||
      <p>Les comparaisons de <var>Nom de serveur</var> s'effectuent sans tenir
 | 
						||
      compte de la casse, et les parties droites des <var>Noms de serveur</var>
 | 
						||
      sont toujours cens<6E>es correspondre <20> la racine de l'arborescence
 | 
						||
      DNS, si bien que les domaines <code>WWW.ExEmple.com</code> et
 | 
						||
      <code>www.example.com.</code> (notez le point <20> la fin du nom) sont
 | 
						||
      consid<69>r<EFBFBD>s comme identiques.</p>
 | 
						||
     </div></dd>
 | 
						||
    </dl>
 | 
						||
 | 
						||
<h3>Voir aussi</h3>
 | 
						||
<ul>
 | 
						||
<li><a href="../dns-caveats.html">Probl<62>mes li<6C>s au DNS</a></li>
 | 
						||
</ul>
 | 
						||
</div>
 | 
						||
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
 | 
						||
<div class="directive-section"><h2><a name="proxy" id="proxy">Directive</a> <a name="Proxy" id="Proxy"><Proxy></a></h2>
 | 
						||
<table class="directive">
 | 
						||
<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Conteneur de directives s'appliquant <20> des ressources
 | 
						||
mandat<EFBFBD>es</td></tr>
 | 
						||
<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code><Proxy <var>url-avec-jokers</var>> ...</Proxy></code></td></tr>
 | 
						||
<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur, serveur virtuel</td></tr>
 | 
						||
<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
 | 
						||
<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_proxy</td></tr>
 | 
						||
</table>
 | 
						||
    <p>Les directives situ<74>es dans une section <code class="directive"><Proxy></code> ne s'appliquent qu'au contenu
 | 
						||
    mandat<61> concern<72>. Les jokers de style shell sont autoris<69>s.</p>
 | 
						||
 | 
						||
    <p>Par exemple, les lignes suivantes n'autoriseront <20> acc<63>der <20> un
 | 
						||
    contenu via votre serveur mandataire que les h<>tes appartenant <20>
 | 
						||
    <code>votre-reseau.example.com</code> :</p>
 | 
						||
 | 
						||
    <pre class="prettyprint lang-config"><Proxy *>
 | 
						||
  Require host votre-reseau.example.com
 | 
						||
</Proxy></pre>
 | 
						||
 | 
						||
 | 
						||
    <p>Dans l'exemple suivant, tous les fichiers du r<>pertoire
 | 
						||
    <code>foo</code> de <code>example.com</code> seront trait<69>s par le
 | 
						||
    filtre <code>INCLUDES</code> lorsqu'ils seront envoy<6F>s par
 | 
						||
    l'interm<72>diaire du serveur mandataire :</p>
 | 
						||
 | 
						||
    <pre class="prettyprint lang-config"><Proxy http://example.com/foo/*>
 | 
						||
  SetOutputFilter INCLUDES
 | 
						||
</Proxy></pre>
 | 
						||
 | 
						||
 | 
						||
    <p>Dans l'exemple suivant, les clients web poss<73>dant l'adresse IP
 | 
						||
    sp<73>cifi<66>e seront autoris<69>s <20> effectuer des requ<71>tes
 | 
						||
    <code>CONNECT</code> pour acc<63>der au serveur
 | 
						||
    <code>https://www.example.com/</code>, sous r<>serve que le module
 | 
						||
    <code class="module"><a href="../mod/mod_proxy_connect.html">mod_proxy_connect</a></code> soit charg<72>.
 | 
						||
    </p>
 | 
						||
 | 
						||
   <pre class="prettyprint lang-config"><Proxy www.example.com:443>
 | 
						||
  Require ip 192.168.0.0/16
 | 
						||
</Proxy></pre>
 | 
						||
 | 
						||
 | 
						||
    <div class="note"><h3>Diff<66>rences avec la section de configuration Location</h3>
 | 
						||
      <p>Une URL d'arri<72>re-plan sera concern<72>e par le conteneur Proxy si
 | 
						||
      elle commence par la <var>url-avec-jokers</var>, m<>me si le
 | 
						||
      dernier segment de chemin de la directive ne correspond qu'<27> un
 | 
						||
      pr<70>fixe de segment dee chemin de l'URL d'arri<72>re-plan. Par exemple, <Proxy
 | 
						||
      http://example.com/foo> correspondra entre autres aux URLs
 | 
						||
      http://example.com/foo, http://example.com/foo/bar, et
 | 
						||
      http://example.com/foobar. La correspondance de l'URL finale
 | 
						||
      diff<66>re du comportement de la section <code class="directive"><a href="../mod/core.html#location"><Location></a></code> qui, pour le cas de cette note,
 | 
						||
      traitera le segment de chemin final comme s'il se terminait par un
 | 
						||
      slash.</p>
 | 
						||
      <p>Pour un contr<74>le plus fin de la correspondance des URL, voir la
 | 
						||
      directive <code class="directive"><ProxyMatch></code>.</p>
 | 
						||
    </div>
 | 
						||
 | 
						||
 | 
						||
<h3>Voir aussi</h3>
 | 
						||
<ul>
 | 
						||
<li><code class="directive"><a href="#proxymatch"><ProxyMatch></a></code></li>
 | 
						||
</ul>
 | 
						||
</div>
 | 
						||
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
 | 
						||
<div class="directive-section"><h2><a name="proxyaddheaders" id="proxyaddheaders">Directive</a> <a name="ProxyAddHeaders" id="ProxyAddHeaders">ProxyAddHeaders</a></h2>
 | 
						||
<table class="directive">
 | 
						||
<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Ajoute des informations <20> propos du mandataire aux
 | 
						||
en-t<>tes X-Forwarded-*</td></tr>
 | 
						||
<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>ProxyAddHeaders Off|On</code></td></tr>
 | 
						||
<tr><th><a href="directive-dict.html#Default">D<>faut:</a></th><td><code>ProxyAddHeaders On</code></td></tr>
 | 
						||
<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur, serveur virtuel, r<>pertoire</td></tr>
 | 
						||
<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
 | 
						||
<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_proxy</td></tr>
 | 
						||
<tr><th><a href="directive-dict.html#Compatibility">Compatibilit<69>:</a></th><td>Disponible depuis la version 2.3.10</td></tr>
 | 
						||
</table>
 | 
						||
    <p>Cette directive permet de passer au serveur d'arri<72>re-plan des
 | 
						||
    informations <20> propos du mandataire via les en-t<>tes HTTP
 | 
						||
    X-Forwarded-For, X-Forwarded-Host et X-Forwarded-Server.</p>
 | 
						||
    <div class="note"><h3>Utilit<69></h3>
 | 
						||
     <p>Cette option n'est utile que dans le cas du mandat HTTP trait<69>
 | 
						||
     par <code class="module"><a href="../mod/mod_proxy_http.html">mod_proxy_http</a></code>.</p>
 | 
						||
    </div>
 | 
						||
 | 
						||
</div>
 | 
						||
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
 | 
						||
<div class="directive-section"><h2><a name="proxybadheader" id="proxybadheader">Directive</a> <a name="ProxyBadHeader" id="ProxyBadHeader">ProxyBadHeader</a></h2>
 | 
						||
<table class="directive">
 | 
						||
<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>D<>termine la mani<6E>re de traiter les lignes d'en-t<>te
 | 
						||
incorrectes d'une r<>ponse</td></tr>
 | 
						||
<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>ProxyBadHeader IsError|Ignore|StartBody</code></td></tr>
 | 
						||
<tr><th><a href="directive-dict.html#Default">D<>faut:</a></th><td><code>ProxyBadHeader IsError</code></td></tr>
 | 
						||
<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur, serveur virtuel</td></tr>
 | 
						||
<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
 | 
						||
<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_proxy</td></tr>
 | 
						||
</table>
 | 
						||
    <p>La directive <code class="directive">ProxyBadHeader</code> permet de
 | 
						||
    d<>terminer le comportement de <code class="module"><a href="../mod/mod_proxy.html">mod_proxy</a></code> lorsqu'il
 | 
						||
    re<72>oit des lignes d'en-t<>te de r<>ponse dont la syntaxe n'est pas valide (c'est
 | 
						||
    <20> dire ne contenant pas de caract<63>re ':') en provenance du serveur
 | 
						||
    original. Les arguments disponibles sont :</p>
 | 
						||
 | 
						||
    <dl>
 | 
						||
    <dt><code>IsError</code></dt>
 | 
						||
    <dd>Annule la requ<71>te et renvoie une r<>ponse de code 502 (mauvaise
 | 
						||
    passerelle). C'est le comportement par d<>faut.</dd>
 | 
						||
 | 
						||
    <dt><code>Ignore</code></dt>
 | 
						||
    <dd>Traite les lignes d'en-t<>te incorrectes comme si elles n'avaient
 | 
						||
    pas <20>t<EFBFBD> envoy<6F>es.</dd>
 | 
						||
 | 
						||
    <dt><code>StartBody</code></dt>
 | 
						||
    <dd>A la r<>ception de la premi<6D>re ligne d'en-t<>te incorrecte, les
 | 
						||
    autres en-t<>tes sont lus et ce qui reste est trait<69> en tant que
 | 
						||
    corps. Ceci facilite la prise en compte des serveurs d'arri<72>re-plan
 | 
						||
    bogu<67>s qui oublient d'ins<6E>rer une ligne vide entre les
 | 
						||
    en-t<>tes et le corps.</dd>
 | 
						||
    </dl>
 | 
						||
 | 
						||
</div>
 | 
						||
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
 | 
						||
<div class="directive-section"><h2><a name="proxyblock" id="proxyblock">Directive</a> <a name="ProxyBlock" id="ProxyBlock">ProxyBlock</a></h2>
 | 
						||
<table class="directive">
 | 
						||
<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Interdit les requ<71>tes mandat<61>es vers certains h<>tes</td></tr>
 | 
						||
<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>ProxyBlock *|<var>nom d'h<>te</var>|<var>nom d'h<>te partiel</var>
 | 
						||
[<var>nom d'h<>te</var>|<var>nom d'h<>te partiel</var>]...</code></td></tr>
 | 
						||
<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur, serveur virtuel</td></tr>
 | 
						||
<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
 | 
						||
<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_proxy</td></tr>
 | 
						||
</table>
 | 
						||
    <p>La directive <code class="directive">ProxyBlock</code> permet d'interdire
 | 
						||
    l'acc<63>s FTP ou HTTP via le mandataire <20> certains h<>tes en fonction
 | 
						||
    d'une correspondance exacte ou partielle avec un nom d'h<>te, ou dans
 | 
						||
    la mesure du possible en fonction d'une comparaison d'adresses IP.</p>
 | 
						||
 | 
						||
    <p>Chaque param<61>tre de la directive
 | 
						||
    <code class="directive">ProxyBlock</code> accepte comme valeur soit
 | 
						||
    <code>*</code>, soit une cha<68>ne alphanum<75>rique. Au d<>marrage, le
 | 
						||
    module tente de r<>soudre toute cha<68>ne alphanum<75>rique depuis un nom
 | 
						||
    DNS vers un jeu d'adresses IP, mais toute erreur de DNS est ignor<6F>e.</p>
 | 
						||
 | 
						||
    <p>Si un param<61>tre a pour valeur "<code>*</code>",
 | 
						||
    <code class="module"><a href="../mod/mod_proxy.html">mod_proxy</a></code> interdira l'acc<63>s <20> tout site FTP ou
 | 
						||
    HTTP.</p>
 | 
						||
 | 
						||
    <p>Dans le cas contraire, pour toute requ<71>te vers une ressource FTP
 | 
						||
    ou HTTP via le mandataire, <code class="module"><a href="../mod/mod_proxy.html">mod_proxy</a></code> va comparer le
 | 
						||
    nom d'h<>te de l'URI de la requ<71>te avec chaque cha<68>ne alphanum<75>rique
 | 
						||
    sp<73>cifi<66>e. Si une cha<68>ne correspond, m<>me partiellement, l'acc<63>s est
 | 
						||
    refus<75>. Si aucune cha<68>ne ne correspond, et si un mandataire distant
 | 
						||
    (forward) est configur<75> via la directive
 | 
						||
    <code class="directive">ProxyRemote</code> ou
 | 
						||
    <code class="directive">ProxyRemoteMatch</code>, l'acc<63>s est autoris<69>. Si
 | 
						||
    aucun mandataire distant (forward) n'est configur<75>, l'adresse IP
 | 
						||
    correspondant au nom d'h<>te de l'URI est compar<61>e <20> toutes les
 | 
						||
    adresses IP r<>solues au d<>marrage, et l'acc<63>s est refus<75> si une
 | 
						||
    correspondance est trouv<75>e.</p>
 | 
						||
 | 
						||
    <p>Notez que les recherches DNS peuvent ralentir le processus de
 | 
						||
    d<>marrage du serveur.</p>
 | 
						||
 | 
						||
    <div class="example"><h3>Exemple</h3><pre class="prettyprint lang-config">ProxyBlock news.example.com auctions.example.com friends.example.com</pre>
 | 
						||
</div>
 | 
						||
 | 
						||
    <p>Notez qu'<code>example</code> suffirait aussi pour atteindre
 | 
						||
    ces sites.</p>
 | 
						||
 | 
						||
    <p>Hosts conviendrait aussi s'il <20>tait r<>f<EFBFBD>renc<6E> par adresse IP.</p>
 | 
						||
 | 
						||
    <p>Notez aussi que</p>
 | 
						||
 | 
						||
    <pre class="prettyprint lang-config">ProxyBlock *</pre>
 | 
						||
 | 
						||
 | 
						||
    <p>bloque les connexions vers tous les sites.</p>
 | 
						||
 | 
						||
</div>
 | 
						||
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
 | 
						||
<div class="directive-section"><h2><a name="proxydomain" id="proxydomain">Directive</a> <a name="ProxyDomain" id="ProxyDomain">ProxyDomain</a></h2>
 | 
						||
<table class="directive">
 | 
						||
<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Nom de domaine par d<>faut pour les requ<71>tes
 | 
						||
mandat<EFBFBD>es</td></tr>
 | 
						||
<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>ProxyDomain <var>Domaine</var></code></td></tr>
 | 
						||
<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur, serveur virtuel</td></tr>
 | 
						||
<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
 | 
						||
<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_proxy</td></tr>
 | 
						||
</table>
 | 
						||
    <p>Cette directive n'a d'utilit<69> que pour les serveurs mandataires
 | 
						||
    Apache httpd au sein d'un Intranet. La directive
 | 
						||
    <code class="directive">ProxyDomain</code> permet de sp<73>cifier le domaine
 | 
						||
    par d<>faut auquel le serveur mandataire apache appartient. Si le
 | 
						||
    serveur re<72>oit une requ<71>te pour un h<>te sans nom de domaine, il va
 | 
						||
    g<>n<EFBFBD>rer une r<>ponse de redirection vers le m<>me h<>te suffix<69> par le
 | 
						||
    <var>Domaine</var> sp<73>cifi<66>.</p>
 | 
						||
 | 
						||
    <div class="example"><h3>Exemple</h3><pre class="prettyprint lang-config">ProxyRemote  "*"  "http://firewall.example.com:81"
 | 
						||
NoProxy           ".example.com" "192.168.112.0/21"
 | 
						||
ProxyDomain       ".example.com"</pre>
 | 
						||
</div>
 | 
						||
 | 
						||
</div>
 | 
						||
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
 | 
						||
<div class="directive-section"><h2><a name="proxyerroroverride" id="proxyerroroverride">Directive</a> <a name="ProxyErrorOverride" id="ProxyErrorOverride">ProxyErrorOverride</a></h2>
 | 
						||
<table class="directive">
 | 
						||
<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Outrepasser les pages d'erreur pour les contenus
 | 
						||
mandat<EFBFBD>s</td></tr>
 | 
						||
<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>ProxyErrorOverride On|Off</code></td></tr>
 | 
						||
<tr><th><a href="directive-dict.html#Default">D<>faut:</a></th><td><code>ProxyErrorOverride Off</code></td></tr>
 | 
						||
<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur, serveur virtuel, r<>pertoire</td></tr>
 | 
						||
<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
 | 
						||
<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_proxy</td></tr>
 | 
						||
</table>
 | 
						||
    <p>Cette directive est utile pour les configurations de mandataires
 | 
						||
    inverses, lorsque vous souhaitez que les pages d'erreur envoy<6F>es
 | 
						||
    aux utilisateurs finaux pr<70>sentent un aspect homog<6F>ne. Elle permet
 | 
						||
    aussi l'inclusion de fichiers (via les SSI de
 | 
						||
    <code class="module"><a href="../mod/mod_include.html">mod_include</a></code>) pour obtenir le code d'erreur et agir
 | 
						||
    en cons<6E>quence (le comportement par d<>faut afficherait la page
 | 
						||
    d'erreur du serveur mandat<61>, alors que c'est le message d'erreur SSI
 | 
						||
    qui sera affich<63> si cette directive est <20> "on").</p>
 | 
						||
 | 
						||
    <p>Cette directive n'affecte pas le traitement des r<>ponses
 | 
						||
    informatives (1xx), de type succ<63>s normal (2xx), ou de redirection
 | 
						||
    (3xx).</p>
 | 
						||
 | 
						||
</div>
 | 
						||
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
 | 
						||
<div class="directive-section"><h2><a name="proxyiobuffersize" id="proxyiobuffersize">Directive</a> <a name="ProxyIOBufferSize" id="ProxyIOBufferSize">ProxyIOBufferSize</a></h2>
 | 
						||
<table class="directive">
 | 
						||
<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>D<>termine la taille du tampon interne de transfert de
 | 
						||
donn<EFBFBD>es</td></tr>
 | 
						||
<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>ProxyIOBufferSize <var>octets</var></code></td></tr>
 | 
						||
<tr><th><a href="directive-dict.html#Default">D<>faut:</a></th><td><code>ProxyIOBufferSize 8192</code></td></tr>
 | 
						||
<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur, serveur virtuel</td></tr>
 | 
						||
<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
 | 
						||
<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_proxy</td></tr>
 | 
						||
</table>
 | 
						||
    <p>La directive <code class="directive">ProxyIOBufferSize</code> permet
 | 
						||
    d'ajuster la taille du tampon interne utilis<69> comme bloc-note pour
 | 
						||
    les transferts de donn<6E>es entre entr<74>e et sortie. La taille minimale
 | 
						||
    est de <code>512</code> octets.</p>
 | 
						||
 | 
						||
    <p>Dans la plupart des cas, il n'y a aucune raison de modifier cette
 | 
						||
    valeur.</p>
 | 
						||
 | 
						||
    <p>Si elle est utilis<69>e avec AJP, cette directive permet de d<>finir
 | 
						||
    la taille maximale du paquet AJP en octets. Si la valeur sp<73>cifi<66>e
 | 
						||
    est sup<75>rieure <20> 65536, elle est corrig<69>e et prend la valeur 65536.    
 | 
						||
    Si vous ne conservez pas
 | 
						||
    la valeur par d<>faut, vous devez aussi modifier l'attribut
 | 
						||
    <code>packetSize</code> de votre connecteur AJP du c<>t<EFBFBD> de Tomcat !
 | 
						||
    L'attribut <code>packetSize</code> n'est disponible que dans Tomcat
 | 
						||
    <code>5.5.20+</code> et <code>6.0.2+</code>.</p>
 | 
						||
    <p>Il n'est normalement pas n<>cessaire de modifier la taille
 | 
						||
    maximale du paquet. Des probl<62>mes ont cependant <20>t<EFBFBD> rapport<72>s avec
 | 
						||
    la valeur par d<>faut lors de l'envoi de certificats ou de cha<68>nes de
 | 
						||
    certificats.</p>
 | 
						||
 | 
						||
 | 
						||
</div>
 | 
						||
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
 | 
						||
<div class="directive-section"><h2><a name="proxymatch" id="proxymatch">Directive</a> <a name="ProxyMatch" id="ProxyMatch"><ProxyMatch></a></h2>
 | 
						||
<table class="directive">
 | 
						||
<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Conteneur de directives s'appliquant <20> des ressources
 | 
						||
mandat<EFBFBD>es correspondant <20> une expression rationnelle</td></tr>
 | 
						||
<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code><ProxyMatch <var>regex</var>> ...</ProxyMatch></code></td></tr>
 | 
						||
<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur, serveur virtuel</td></tr>
 | 
						||
<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
 | 
						||
<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_proxy</td></tr>
 | 
						||
</table>
 | 
						||
    <p>La directive <code class="directive"><ProxyMatch></code> est
 | 
						||
    identique <20> la directive <code class="directive"><a href="#proxy"><Proxy></a></code>, <20> l'exception qu'elle d<>finit
 | 
						||
    les URLs auxquelles elle s'applique en utilisant une <a class="glossarylink" href="../glossary.html#regex" title="voir glossaire">expression rationnelle</a>.</p>
 | 
						||
 | 
						||
    <p>A partir de la version 2.4.8, les groupes nomm<6D>s et les
 | 
						||
    r<>f<EFBFBD>rences arri<72>res sont extraits et enregistr<74>s dans
 | 
						||
    l'environnement avec leur nom en majuscules et pr<70>fix<69> par "MATCH_". Ceci permet
 | 
						||
    de r<>f<EFBFBD>rencer des URLs dans des <a href="../expr.html">expressions</a>
 | 
						||
    ou au sein de modules comme <code class="module"><a href="../mod/mod_rewrite.html">mod_rewrite</a></code>. Pour
 | 
						||
    <20>viter toute confusion, les r<>f<EFBFBD>rences arri<72>res num<75>rot<6F>es (non
 | 
						||
    nomm<6D>es) sont ignor<6F>es. Vous devez utiliser <20> la place des groupes
 | 
						||
    nomm<6D>s.</p>
 | 
						||
 | 
						||
<pre class="prettyprint lang-config"><ProxyMatch ^http://(?<sitename>[^/]+)>
 | 
						||
    require ldap-group cn=%{env:MATCH_SITENAME},ou=combined,o=Example
 | 
						||
</ProxyMatch></pre>
 | 
						||
 | 
						||
 | 
						||
<h3>Voir aussi</h3>
 | 
						||
<ul>
 | 
						||
<li><code class="directive"><a href="#proxy"><Proxy></a></code></li>
 | 
						||
</ul>
 | 
						||
</div>
 | 
						||
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
 | 
						||
<div class="directive-section"><h2><a name="proxymaxforwards" id="proxymaxforwards">Directive</a> <a name="ProxyMaxForwards" id="ProxyMaxForwards">ProxyMaxForwards</a></h2>
 | 
						||
<table class="directive">
 | 
						||
<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Nombre maximum de mandataires <20> travers lesquelles une
 | 
						||
requ<EFBFBD>te peut <20>tre redirig<69>e</td></tr>
 | 
						||
<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>ProxyMaxForwards <var>nombre</var></code></td></tr>
 | 
						||
<tr><th><a href="directive-dict.html#Default">D<>faut:</a></th><td><code>ProxyMaxForwards -1</code></td></tr>
 | 
						||
<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur, serveur virtuel</td></tr>
 | 
						||
<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
 | 
						||
<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_proxy</td></tr>
 | 
						||
</table>
 | 
						||
    <p>La directive <code class="directive">ProxyMaxForwards</code> permet de
 | 
						||
    sp<73>cifier le nombre maximum de mandataires <20> travers lesquels une
 | 
						||
    requ<71>te peut passer dans le cas o<> la la requ<71>te ne contient pas
 | 
						||
    d'en-t<>te <code>Max-Forwards</code>. Ceci permet de se pr<70>munir
 | 
						||
    contre les boucles infinies de mandataires ou contre les attaques de
 | 
						||
    type d<>ni de service.</p>
 | 
						||
 | 
						||
    <div class="example"><h3>Exemple</h3><pre class="prettyprint lang-config">ProxyMaxForwards 15</pre>
 | 
						||
</div>
 | 
						||
 | 
						||
    <p>Notez que la d<>finition de la directive
 | 
						||
    <code class="directive">ProxyMaxForwards</code> constitue une violation du
 | 
						||
    protocole HTTP/1.1 (RFC2616), qui interdit <20> un mandataire de
 | 
						||
    d<>finir <code>Max-Forwards</code> si le client ne l'a pas fait
 | 
						||
    lui-m<>me. Les versions pr<70>c<EFBFBD>dentes d'Apache httpd la d<>finissaient
 | 
						||
    syst<73>matiquement. Une valeur n<>gative de
 | 
						||
    <code class="directive">ProxyMaxForwards</code>, y compris la valeur par
 | 
						||
    d<>faut -1, implique un comportement compatible avec le protocole,
 | 
						||
    mais vous expose aux bouclages infinis.</p>
 | 
						||
 | 
						||
</div>
 | 
						||
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
 | 
						||
<div class="directive-section"><h2><a name="proxypass" id="proxypass">Directive</a> <a name="ProxyPass" id="ProxyPass">ProxyPass</a></h2>
 | 
						||
<table class="directive">
 | 
						||
<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>R<>f<EFBFBD>rencer des serveurs distants depuis
 | 
						||
l'espace d'URLs du serveur local</td></tr>
 | 
						||
<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>ProxyPass [<var>chemin</var>] !|<var>url</var> [<var>cl<63>=valeur</var>
 | 
						||
  <var>[cl<63>=valeur</var> ...]] [nocanon] [interpolate] [noquery]</code></td></tr>
 | 
						||
<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur, serveur virtuel, r<>pertoire</td></tr>
 | 
						||
<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
 | 
						||
<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_proxy</td></tr>
 | 
						||
<tr><th><a href="directive-dict.html#Compatibility">Compatibilit<69>:</a></th><td>Les Sockets de style Unix (Unix Domain Socket - UDS) sont support<72>s <20> partir
 | 
						||
de la version 2.4.7 du serveur HTTP Apache</td></tr>
 | 
						||
</table>
 | 
						||
    <p>Cette directive permet de r<>f<EFBFBD>rencer des serveurs distants depuis
 | 
						||
    l'espace d'URLs du serveur local ; le serveur
 | 
						||
    local n'agit pas en tant que mandataire au sens conventionnel, mais
 | 
						||
    plut<75>t comme miroir du serveur distant. Le serveur local est
 | 
						||
    souvent nomm<6D> <dfn>mandataire inverse</dfn> ou
 | 
						||
    <dfn>passerelle</dfn>. L'argument <var>chemin</var> est le nom d'un
 | 
						||
    chemin virtuel local ; <var>url</var> est une URL partielle pour le
 | 
						||
    serveur distant et ne doit pas contenir de cha<68>ne d'arguments.</p>
 | 
						||
 | 
						||
    <div class="note">Il est fortement recommand<6E> de revoir le concept de <a href="#workers">Worker</a> avant d'aller plus loin.</div>
 | 
						||
 | 
						||
    <div class="note">Cette directive n'est pas support<72>e au sein
 | 
						||
    des sections <code class="directive"><a href="../mod/core.html#directory"><Directory></a></code>
 | 
						||
    et <code class="directive"><a href="../mod/core.html#files"><Files></a></code>.</div>
 | 
						||
 | 
						||
    <div class="warning">En g<>n<EFBFBD>ral, la directive <code class="directive"><a href="#proxyrequests">ProxyRequests</a></code> doit <20>tre d<>finie <20>
 | 
						||
    <strong>off</strong> lorsqu'on utilise la directive
 | 
						||
    <code class="directive">ProxyPass</code>.</div>
 | 
						||
 | 
						||
    <p>Les sockets de style Unix sont support<72>s <20> partir de la version
 | 
						||
    2.4.7 du serveur HTTP Apache ; pour utiliser cette fonctionnalit<69>,
 | 
						||
    il suffit d'utiliser une URL cible pr<70>fix<69>e par
 | 
						||
    <code>unix:/path/lis.sock|</code>. Par exemple, pour mandater HTTP
 | 
						||
    et cibler l'UDS /home/www/socket, vous devez utiliser
 | 
						||
    <code>unix:/home/www.socket|http://localhost/whatever/</code>. Comme
 | 
						||
    le socket est local, le nom d'h<>te utilis<69> (ici
 | 
						||
    <code>localhost</code>) peut <20>tre sujet <20> discussion, mais il est
 | 
						||
    transmis dans l'en-t<>te Host: de la requ<71>te.</p>
 | 
						||
 | 
						||
    <div class="note"><strong>Note :</strong>Le chemin associ<63> <20> l'URL
 | 
						||
    <code>unix:</code> tient compte de la directive
 | 
						||
    <code class="directive">DefaultRuntimeDir</code>.</div>
 | 
						||
 | 
						||
    <div class="note"><strong>Note :</strong>Afin d'<27>viter l'<27>chappement du
 | 
						||
    caract<63>re <code>'|'</code>, la directive
 | 
						||
    <code class="directive">RewriteRule</code> doit poss<73>der l'option
 | 
						||
    <code>[P,NE]</code>.</div>
 | 
						||
 | 
						||
    <p>Lorsque la directive ProxyPass est utilis<69>e <20> l'int<6E>rieur d'une
 | 
						||
    section <code class="directive"><a href="../mod/core.html#location"><Location></a></code>, le premier argument est omis et le r<>pertoire
 | 
						||
    local est obtenu <20> partir de la section <code class="directive"><a href="../mod/core.html#location"><Location></a></code>. Il en sera de m<>me dans une
 | 
						||
    section <code class="directive"><a href="../mod/core.html#locationmatch"><LocationMatch></a></code> ; cependant, ProxyPass
 | 
						||
    n'interpr<70>te pas les expressions rationnelles, et il sera ici
 | 
						||
    n<>cessaire d'utiliser la directive
 | 
						||
    <code class="directive">ProxyPassMatch</code> <20> la place.</p>
 | 
						||
    
 | 
						||
    <p>Supposons que le serveur local a pour adresse
 | 
						||
    <code>http://example.com/</code> ; alors la ligne</p>
 | 
						||
 | 
						||
    <pre class="prettyprint lang-config"><Location "/mirror/foo/">
 | 
						||
    ProxyPass "http://backend.example.com/"
 | 
						||
</Location></pre>
 | 
						||
 | 
						||
 | 
						||
    <p>va convertir en interne toute requ<71>te pour
 | 
						||
    <code>http://example.com/miroir/foo/bar</code> en une requ<71>te
 | 
						||
    mandat<61>e pour <code>http://backend.example.com/bar</code>.</p>
 | 
						||
 | 
						||
    <p>Si vous avez besoin d'un configuration de mandataire inverse plus
 | 
						||
    souple, reportez-vous <20> la documentation de la directive <code class="directive"><a href="../mod/mod_rewrite.html#rewriterule">RewriteRule</a></code> et son drapeau
 | 
						||
    <code>[P]</code>.</p>
 | 
						||
 | 
						||
    <p>La syntaxe alternative suivante est valide, bien qu'elle puisse
 | 
						||
    induire une d<>gradation des performances lorsqu'elle est
 | 
						||
    pr<70>sente en tr<74>s grand nombre. Elle poss<73>de l'avantage de
 | 
						||
    permettre un contr<74>le dynamique via l'interface <a href="mod_proxy_balancer.html#balancer_manager">Balancer Manager</a> :</p>
 | 
						||
 | 
						||
    <pre class="prettyprint lang-config">ProxyPass "/miroir/foo/" "http://backend.example.com/"</pre>
 | 
						||
 | 
						||
 | 
						||
    <div class="warning">
 | 
						||
    <p>Si le premier argument se termine par un slash
 | 
						||
    <strong>/</strong>, il doit en <20>tre de m<>me pour le second argument
 | 
						||
    et vice versa. Dans le cas contraire, il risque de manquer des
 | 
						||
    slashes n<>cessaires dans la requ<71>te r<>sultante vers le serveur
 | 
						||
    d'arri<72>re-plan et les r<>sulats ne seront pas ceux attendus.
 | 
						||
    </p>
 | 
						||
    </div>
 | 
						||
 | 
						||
    <p>Le drapeau <code>!</code> permet de soustraire un sous-r<>pertoire
 | 
						||
    du mandat inverse, comme dans l'exemple suivant :</p>
 | 
						||
 | 
						||
    <pre class="prettyprint lang-config"><Location "/mirror/foo/">
 | 
						||
    ProxyPass "http://backend.example.com/"
 | 
						||
</Location>
 | 
						||
<Location "/mirror/foo/i">
 | 
						||
    ProxyPass "!"
 | 
						||
</Location></pre>
 | 
						||
 | 
						||
 | 
						||
    <pre class="prettyprint lang-config">ProxyPass "/mirror/foo/i" "!"
 | 
						||
ProxyPass "/mirror/foo" "http://backend.example.com"</pre>
 | 
						||
 | 
						||
 | 
						||
    <p>va mandater toutes les requ<71>tes pour <code>/miroir/foo</code>
 | 
						||
    vers <code>backend.example.com</code>, <em>sauf</em> les requ<71>tes
 | 
						||
    pour <code>/miroir/foo/i</code>.</p>
 | 
						||
 | 
						||
    <div class="warning"><h3>Ordre de classement des directives ProxyPass</h3>
 | 
						||
      <p>Les directives <code class="directive"><a href="#proxypass">ProxyPass</a></code> et <code class="directive"><a href="#proxypassmatch">ProxyPassMatch</a></code> sont <20>valu<6C>es dans
 | 
						||
      l'ordre de leur apparition dans le fichier de configuration. La
 | 
						||
      premi<6D>re r<>gle qui correspond s'applique. Vous devez donc en
 | 
						||
      g<>n<EFBFBD>ral classer les r<>gles <code class="directive"><a href="#proxypass">ProxyPass</a></code> qui entrent en conflit de
 | 
						||
      l'URL la plus longue <20> la plus courte. Dans le cas contraire, les
 | 
						||
      r<>gles situ<74>es apr<70>s une r<>gle dont l'URL correspond au d<>but de
 | 
						||
      leur propre URL seront ignor<6F>es. Notez que tout ceci est en
 | 
						||
      relation avec le partage de workers. Par contre, on ne peut placer
 | 
						||
      qu'une seule directive <code class="directive"><a href="#proxypass">ProxyPass</a></code> dans une section
 | 
						||
      <code class="directive"><a href="../mod/core.html#location">Location</a></code>, et c'est la section
 | 
						||
      la plus sp<73>cifique qui l'emportera.</p>
 | 
						||
 | 
						||
      <p>Pour les m<>mes raisons, les exclusions doivent se situer <em>avant</em>
 | 
						||
      les directives <code class="directive">ProxyPass</code> g<>n<EFBFBD>rales. A partir de la
 | 
						||
      version 2.4.26 du serveur HTTP Apache, la variable
 | 
						||
      d'environnement "no-proxy" est une alternative aux exclusions et constitue
 | 
						||
      le seul moyen de configurer une exclusion pour une directive
 | 
						||
      <code class="directive">ProxyPass</code> dans le contexte d'une section <code class="directive"><a href="../mod/core.html#location">Location</a></code>. Cette variable doit <20>tre d<>finie via
 | 
						||
      la directive <code class="directive"><a href="../mod/mod_setenvif.html#setenvif">SetEnvIf</a></code> car la
 | 
						||
      directive <code class="directive"><a href="../mod/mod_env.html#setenv">SetEnv</a></code> n'est pas <20>valu<6C>e
 | 
						||
      assez t<>t.</p>
 | 
						||
 | 
						||
    </div> 
 | 
						||
 | 
						||
    <p><strong>ProxyPass <code>cl<63>=valeur</code> Param<61>tres</strong></p>
 | 
						||
 | 
						||
    <p>Depuis la version 2.1 du serveur HTTP Apache, mod_proxy supporte
 | 
						||
    les groupements de connexions vers un serveur d'arri<72>re-plan. Les
 | 
						||
    connexions cr<63><72>es <20> la demande peuvent <20>tre enregistr<74>es dans un
 | 
						||
    groupement pour une utilisation ult<6C>rieure. La taille du groupe
 | 
						||
    ainsi que d'autres caract<63>ristiques peuvent <20>tre d<>finies via la
 | 
						||
    directive <code class="directive">ProxyPass</code> au moyen de param<61>tres
 | 
						||
    <code>cl<63>=valeur</code> dont la description fait l'objet du tableau
 | 
						||
    ci-dessous.</p>
 | 
						||
 | 
						||
    <div class="warning"><h3>Nombre maximum de connexions vers
 | 
						||
    l'arri<72>re-plan</h3> 
 | 
						||
    <p>Par d<>faut, mod_proxy permet et met en r<>serve le
 | 
						||
    nombre maximum de connexions pouvant <20>tre utilis<69>es simultan<61>ment par le
 | 
						||
    processus enfant concern<72> du serveur web. Le param<61>tre <code>max</code>
 | 
						||
    permet de r<>duire cette valeur par d<>faut. Le jeu de connexions est maintenu
 | 
						||
    au niveau de chaque processus enfant du serveur web, <code>max</code> et les
 | 
						||
    autres r<>glages n'<27>tant pas coordonn<6E>s entre ces diff<66>rents processus, sauf
 | 
						||
    bien entendu lorsqu'un seul processus enfant n'est autoris<69> par la
 | 
						||
    configuration ou le MPM utilis<69>.</p> </div>
 | 
						||
    
 | 
						||
    <p>Le param<61>tre <code>ttl</code>, quant <20> lui, permet de d<>finir une dur<75>e
 | 
						||
    de vie optionnelle ; les connexions qui n'ont pas <20>t<EFBFBD> utilis<69>es pendant au
 | 
						||
    moins <code>ttl</code> secondes seront ferm<72>es. <code>ttl</code> permet
 | 
						||
    aussi d'emp<6D>cher l'utilisation d'une connexion susceptible d'<27>tre ferm<72>e
 | 
						||
    suite <20> une fin de vie de connexion persistante sur le serveur
 | 
						||
    d'arri<72>re-plan.</p>
 | 
						||
 | 
						||
    <div class="example"><h3>Exemple</h3><pre class="prettyprint lang-config">ProxyPass "/example" "http://backend.example.com" max=20 ttl=120 retry=300</pre>
 | 
						||
</div>
 | 
						||
 | 
						||
    <table class="bordered"><tr><th>Param<61>tres du worker (directive BalancerMember)</th></tr></table>
 | 
						||
    <table>
 | 
						||
    <tr><th>Param<61>tre</th>
 | 
						||
        <th>D<>faut</th>
 | 
						||
        <th>Description</th></tr>
 | 
						||
    <tr><td>min</td>
 | 
						||
        <td>0</td>
 | 
						||
        <td>Nombre minimum d'entr<74>es dans le pool de connexions,
 | 
						||
	distinct du nombre de connexions effectif. La valeur par d<>faut
 | 
						||
	ne doit <20>tre modifi<66>e que dans des circonstances particuli<6C>res
 | 
						||
	o<> la m<>moire associ<63>e aux connexions avec le serveur
 | 
						||
	d'arri<72>re-plan doit <20>tre pr<70>allou<6F>e ou r<>serv<72>e dans le tas.</td></tr>
 | 
						||
    <tr><td>max</td>
 | 
						||
        <td>1...n</td>
 | 
						||
        <td>Nombre maximum de connexions autoris<69>es vers le serveur
 | 
						||
	d'arri<72>re-plan. La valeur par d<>faut correspond au nombre de
 | 
						||
	threads par processus pour le MPM (Module Multi Processus)
 | 
						||
	actif. La valeur sera toujours 1 pour le MPM Prefork, alors
 | 
						||
	qu'elle d<>pendra de la d<>finition de la directive
 | 
						||
	<code class="directive">ThreadsPerChild</code> pour les autres MPMs.</td></tr>
 | 
						||
    <tr><td>smax</td>
 | 
						||
        <td>max</td>
 | 
						||
        <td>Les entr<74>es du pool de connexions conserv<72>es au del<65> de
 | 
						||
	cette limite sont lib<69>r<EFBFBD>es au cours de certaines op<6F>rations si
 | 
						||
	elles n'ont pas <20>t<EFBFBD> utilis<69>es au cours de leur dur<75>e de vie,
 | 
						||
	d<>finie par le param<61>tre <code>ttl</code>. Si l'entr<74>e du pool
 | 
						||
	de connexions est associ<63>e <20> une connexion, cette derni<6E>re sera
 | 
						||
	ferm<72>e. La valeur par d<>faut ne doit <20>tre modifi<66>e que dans des
 | 
						||
	circonstances particuli<6C>res o<> les entr<74>es du pool de connexions
 | 
						||
	et toutes connexions associ<63>es qui ont d<>pass<73> leur dur<75>e de vie
 | 
						||
	doivent <20>tre lib<69>r<EFBFBD>es ou ferm<72>es de mani<6E>re plus autoritaire.</td></tr>
 | 
						||
    <tr><td>acquire</td>
 | 
						||
        <td>-</td>
 | 
						||
        <td>Cette cl<63> permet de d<>finir le d<>lai maximum d'attente pour
 | 
						||
	une connexion libre dans le jeu de connexions, en millisecondes.
 | 
						||
	S'il n'y a pas de connexion libre dans le jeu, Apache httpd renverra
 | 
						||
	l'<27>tat <code>SERVER_BUSY</code> au client.
 | 
						||
    </td></tr>
 | 
						||
    <tr><td>connectiontimeout</td>
 | 
						||
        <td>timeout</td>
 | 
						||
        <td>D<>lai d'attente d'une connexion en secondes.
 | 
						||
        La dur<75>e en secondes pendant laquelle Apache httpd va attendre pour
 | 
						||
	l'<27>tablissement d'une connexion vers le serveur d'arri<72>re-plan.
 | 
						||
	Le d<>lai peut <20>tre sp<73>cifi<66> en millisecondes en ajoutant le
 | 
						||
	suffixe ms. Utilise la syntaxe <a href="directive-dict.html#Syntax">time-interval</a>.
 | 
						||
    </td></tr>
 | 
						||
    <tr><td>disablereuse</td>
 | 
						||
        <td>Off</td>
 | 
						||
        <td>Vous pouvez utiliser cette cl<63> pour forcer mod_proxy <20>
 | 
						||
	fermer imm<6D>diatement une connexion vers le serveur
 | 
						||
	d'arri<72>re-plan apr<70>s utilisation, et ainsi d<>sactiver le jeu de
 | 
						||
	connexions permanentes vers ce serveur. Ceci peut s'av<61>rer utile
 | 
						||
	dans des situations o<> un pare-feu situ<74> entre Apache httpd et le
 | 
						||
	serveur d'arri<72>re-plan (quelque soit le protocole) interrompt
 | 
						||
	des connexions de mani<6E>re silencieuse, ou lorsque le serveur
 | 
						||
	d'arri<72>re-plan lui-m<>me est accessible par rotation de DNS
 | 
						||
	(round-robin DNS). Lorsque la r<>utilisation des connexions est activ<69>e,
 | 
						||
	chaque domaine d'arri<72>re-plan n'est r<>solu (via une requ<71>te DNS) qu'une
 | 
						||
	seule fois par chaque processus enfant et mis en cache pour toutes les
 | 
						||
	connexions ult<6C>rieures jusqu'au recyclage du processus concern<72>.	
 | 
						||
	Pour d<>sactiver la r<>utilisation du jeu de
 | 
						||
	connexions, d<>finissez cette cl<63> <20> <code>On</code>.
 | 
						||
    </td></tr>
 | 
						||
    <tr><td>enablereuse</td>
 | 
						||
        <td>On</td>
 | 
						||
        <td>Fournie <20> l'intention des gestionnaires de projet
 | 
						||
	qui n<>cessitent un accord pour la r<>utilisation des connexions
 | 
						||
	(tels que <code class="module"><a href="../mod/mod_proxy_fcgi.html">mod_proxy_fcgi</a></code>),
 | 
						||
	cette option est l'inverse de l'option 'disablereuse' ci-dessus.
 | 
						||
    </td></tr>
 | 
						||
    <tr><td>flushpackets</td>
 | 
						||
        <td>off</td>
 | 
						||
        <td>Permet de d<>finir si le module mandataire doit vider
 | 
						||
	automatiquement le tampon de sortie apr<70>s chaque tron<6F>on de
 | 
						||
	donn<6E>es. 'off' signifie que le tampon sera vid<69> si n<>cessaire,
 | 
						||
	'on' que le tampon sera vid<69> apr<70>s chaque envoi d'un
 | 
						||
	tron<6F>on de donn<6E>es, et 'auto' que le tampon sera vid<69> apr<70>s un
 | 
						||
	d<>lai de 'flushwait' millisecondes si aucune entr<74>e n'est re<72>ue.
 | 
						||
	Actuellement, cette cl<63> n'est support<72>e que par mod_proxy_ajp et
 | 
						||
	mod_proxy_fcgi.
 | 
						||
    </td></tr>
 | 
						||
    <tr><td>flushwait</td>
 | 
						||
        <td>10</td>
 | 
						||
        <td>Le d<>lai d'attente pour une entr<74>e additionnelle, en
 | 
						||
	millisecondes, avant le vidage du tampon en sortie dans le cas
 | 
						||
	o<> 'flushpackets' est <20> 'auto'. Utilise la syntaxe <a href="directive-dict.html#Syntax">time-interval</a>.
 | 
						||
    </td></tr>
 | 
						||
    <tr><td>iobuffersize</td>
 | 
						||
        <td>8192</td>
 | 
						||
        <td>Permet de d<>finir la taille du tampon d'entr<74>es/sorties du
 | 
						||
	bloc-notes interne. Cette cl<63> vous permet d'outrepasser la
 | 
						||
	directive <code class="directive">ProxyIOBufferSize</code> pour un
 | 
						||
	serveur cible sp<73>cifique. La valeur doit <20>tre au minimum 512 ou d<>finie
 | 
						||
	<09> 0 pour la valeur par d<>faut du syst<73>me de 8192.
 | 
						||
    </td></tr>
 | 
						||
    <tr><td>keepalive</td>
 | 
						||
        <td>Off</td>
 | 
						||
        <td><p>Cette cl<63> doit <20>tre utilis<69>e lorsque vous avez un pare-feu
 | 
						||
	entre Apache httpd et le serveur d'arri<72>re-plan, et si ce dernier tend
 | 
						||
	<09> interrompre les connexions inactives. Cette cl<63> va faire en
 | 
						||
	sorte que le syst<73>me d'exploitation envoie des messages
 | 
						||
	<code>KEEP_ALIVE</code> sur chacune des connexions inactives et
 | 
						||
	ainsi <20>viter la	fermeture de la	connexion par le pare-feu.
 | 
						||
	Pour conserver les connexions persistantes, definissez cette
 | 
						||
	propri<72>t<EFBFBD> <20> <code>On</code>.</p>
 | 
						||
    <p>La fr<66>quence de v<>rification des connexions TCP persistantes
 | 
						||
    initiale et subs<62>quentes d<>pend de la configuration globale de l'OS,
 | 
						||
    et peut atteindre 2 heures. Pour <20>tre utile, la fr<66>quence configur<75>e
 | 
						||
    dans l'OS doit <20>tre inf<6E>rieure au seuil utilis<69> par le pare-feu. Utilise la
 | 
						||
    syntaxe <a href="directive-dict.html#Syntax">time-interval</a>.</p>
 | 
						||
 | 
						||
    </td></tr>
 | 
						||
    <tr><td>lbset</td>
 | 
						||
        <td>0</td>
 | 
						||
        <td>D<>finit le groupe de r<>partition de charge dont le serveur cible
 | 
						||
	est membre. Le r<>partiteur de charge va essayer tous les membres
 | 
						||
	d'un groupe de r<>partition de charge de num<75>ro inf<6E>rieur avant
 | 
						||
	d'essayer ceux dont le groupe poss<73>de un num<75>ro sup<75>rieur.
 | 
						||
    </td></tr>
 | 
						||
    <tr><td>ping</td>
 | 
						||
        <td>0</td>
 | 
						||
        <td>Avec la cl<63> Ping, le serveur web va "tester" la connexion
 | 
						||
	vers le serveur d'arri<72>re-plan avant de transmettre la requ<71>te.
 | 
						||
	Pour les valeurs n<>gatives, le test est une simple v<>rification
 | 
						||
	de socket, alors que pour les valeurs positives, il s'agit d'une
 | 
						||
	v<>rification plus approfondie d<>pendant du protocole.
 | 
						||
	Avec AJP, <code class="module"><a href="../mod/mod_proxy_ajp.html">mod_proxy_ajp</a></code> envoie une requ<71>te
 | 
						||
	<code>CPING</code> sur la connexion ajp13 (impl<70>ment<6E> sur Tomcat
 | 
						||
	3.3.2+, 4.1.28+ et 5.0.13+). Avec HTTP,
 | 
						||
	<code class="module"><a href="../mod/mod_proxy_http.html">mod_proxy_http</a></code> envoie <code>100-Continue</code>
 | 
						||
	au serveur d'arri<72>re-plan (seulement avecHTTP/1.1 - pour les
 | 
						||
	serveurs d'arri<72>re-plan non HTTP/1.1, cette cl<63> ne produit
 | 
						||
	aucun effet). Dans les deux cas, ce param<61>tre correspond au
 | 
						||
	d<>lai en secondes pour l'attente de la r<>ponse. Cette
 | 
						||
	fonctionnalit<69> a <20>t<EFBFBD> ajout<75>e pour <20>viter les probl<62>mes avec les
 | 
						||
	serveurs d'arri<72>re-plan bloqu<71>s ou surcharg<72>s.
 | 
						||
 | 
						||
	Le trafic
 | 
						||
	r<>seau peut s'en trouver augment<6E> en fonctionnement normal, ce
 | 
						||
	qui peut poser probl<62>me, mais peut s'en trouver diminu<6E> dans les
 | 
						||
	cas o<> les noeuds de cluster sont arr<72>t<EFBFBD>s ou
 | 
						||
	surcharg<72>s. Le d<>lai peut
 | 
						||
	aussi <20>tre d<>fini en millisecondes en ajoutant le suffixe
 | 
						||
	ms. Utilise la syntaxe <a href="directive-dict.html#Syntax">time-interval</a>.
 | 
						||
    </td></tr>
 | 
						||
    <tr><td>receivebuffersize</td>
 | 
						||
        <td>0</td>
 | 
						||
        <td>D<>finit la taille du tampon r<>seau explicite (TCP/IP) pour
 | 
						||
	les connexions mandat<61>es. Cette cl<63> vous permet d'outrepasser la
 | 
						||
	directive <code class="directive">ProxyReceiveBufferSize</code> pour un
 | 
						||
	serveur cible sp<73>cifique. Sa valeur doit <20>tre au minimum 512 ou d<>finie
 | 
						||
	<09> 0 pour la valeur par d<>faut du syst<73>me.
 | 
						||
    </td></tr>
 | 
						||
    <tr><td>redirect</td>
 | 
						||
        <td>-</td>
 | 
						||
        <td>Route pour la redirection du serveur cible. Cette valeur est en
 | 
						||
	g<>n<EFBFBD>ral d<>finie dynamiquement pour permettre une suppression
 | 
						||
	s<>curis<69>e du noeud du cluster. Si cette cl<63> est d<>finie, toutes
 | 
						||
	les requ<71>tes sans identifiant de session seront redirig<69>es vers
 | 
						||
	le membre de groupe de r<>partition de charge dont la route
 | 
						||
	correspond <20> la valeur de la cl<63>.
 | 
						||
    </td></tr>
 | 
						||
    <tr><td>retry</td>
 | 
						||
        <td>60</td>
 | 
						||
        <td>D<>lai entre deux essais du serveur cible du jeu de connexions en
 | 
						||
	secondes. Si le serveur cible du jeu de connexions vers le serveur
 | 
						||
	d'arri<72>re-plan est dans un <20>tat d'erreur, Apache httpd ne redirigera
 | 
						||
	pas de requ<71>te vers ce serveur avant l'expiration du d<>lai
 | 
						||
	sp<73>cifi<66>. Ceci permet d'arr<72>ter le serveur d'arri<72>re-plan pour
 | 
						||
	maintenance, et de le remettre en ligne plus tard. Une valeur de
 | 
						||
	0 implique de toujours essayer les serveurs cibles dans un <20>tat d'erreur
 | 
						||
	sans d<>lai. Utilise la syntaxe <a href="directive-dict.html#Syntax">time-interval</a>.
 | 
						||
    </td></tr>
 | 
						||
    <tr><td>route</td>
 | 
						||
        <td>-</td>
 | 
						||
        <td>La route du serveur cible lorsqu'il est utilis<69> au sein d'un
 | 
						||
	r<>partiteur de charge. La route est une valeur ajout<75>e <20>
 | 
						||
	l'identifiant de session.
 | 
						||
    </td></tr>
 | 
						||
    <tr><td>status</td>
 | 
						||
        <td>-</td>
 | 
						||
        <td>Valeur constitu<74>e d'une simple lettre et d<>finissant l'<27>tat
 | 
						||
	initial de ce serveur cible.
 | 
						||
	 <table class="bordered">
 | 
						||
         <tr><td><code>D</code></td><td>le serveur cible est
 | 
						||
	 d<>sactiv<69> et n'accepte aucune requ<71>te ; sa
 | 
						||
	 r<>activation sera automatiquement relanc<6E>e.</td></tr>
 | 
						||
         <tr><td><code>S</code></td><td>le serveur cible est arr<72>t<EFBFBD>
 | 
						||
	 ; il n'accepte plus de requ<71>te et sa r<>activation ne sera pas
 | 
						||
	 automatiquement relanc<6E>e.</td></tr>
 | 
						||
         <tr><td><code>I</code></td><td>le serveur cible est en mode "erreurs ignor<6F>es",
 | 
						||
	 et sera toujours consid<69>r<EFBFBD> comme disponible.</td></tr>
 | 
						||
         <tr><td><code>H</code></td><td>le serveur cible est en mode d'attente et ne sera
 | 
						||
	 utilis<69> que si aucun autre serveur n'est disponible.</td></tr>
 | 
						||
         <tr><td><code>E</code></td><td>le serveur cible est en erreur.</td></tr>
 | 
						||
         <tr><td><code>N</code></td><td>le serveur cible est en mode vidage, n'acceptera que
 | 
						||
	 les sessions persistantes qui lui appartiennent, et refusera
 | 
						||
	 toutes les autres requ<71>tes.</td></tr>
 | 
						||
        </table>
 | 
						||
	Une valeur d'<27>tat peut <20>tre d<>finie (ce qui
 | 
						||
	correspond au comportement par d<>faut) en pr<70>fixant la valeur
 | 
						||
	par '+', ou annul<75>e en pr<70>fixant la valeur par '-'. Ainsi, la
 | 
						||
	valeur 'S-E' d<>finit l'<27>tat de ce serveur cible <20> "arr<72>t<EFBFBD>" et supprime
 | 
						||
	le drapeau "en-erreur".
 | 
						||
    </td></tr>
 | 
						||
    <tr><td>timeout</td>
 | 
						||
        <td><code class="directive"><a href="#proxytimeout">ProxyTimeout</a></code></td>
 | 
						||
        <td>D<>lai d'attente de la connexion en secondes. Le nombre de
 | 
						||
	secondes pendant lesquelles Apache httpd attend l'envoi de
 | 
						||
	donn<6E>es vers le serveur d'arri<72>re-plan. Utilise la syntaxe <a href="directive-dict.html#Syntax">time-interval</a>.
 | 
						||
    </td></tr>
 | 
						||
    <tr><td>ttl</td>
 | 
						||
        <td>-</td>
 | 
						||
        <td>Dur<75>e de vie des connexions inactives et des entr<74>es du pool
 | 
						||
	de connexions associ<63>es en secondes. Une fois cette
 | 
						||
	limite atteinte, une connexion ne sera pas r<>utilis<69>e ; elle
 | 
						||
	sera ferm<72>e apr<70>s un d<>lai variable. Utilise la syntaxe <a href="directive-dict.html#Syntax">time-interval</a>.
 | 
						||
    </td></tr>
 | 
						||
    <tr><td>flusher</td>
 | 
						||
        <td>flush</td>
 | 
						||
        <td><p>Le fournisseur utilis<69> par <code class="module"><a href="../mod/mod_proxy_fdpass.html">mod_proxy_fdpass</a></code>.
 | 
						||
	Se r<>f<EFBFBD>rer <20> la documentation de ce module pour plus de d<>tails.</p>
 | 
						||
    </td></tr>
 | 
						||
    <tr><td>secret</td>
 | 
						||
        <td>-</td>
 | 
						||
        <td><p>Le mot de passe utilis<69> par <code class="module"><a href="../mod/mod_proxy_ajp.html">mod_proxy_ajp</a></code>. Voir
 | 
						||
	la documentation de ce module pour plus de d<>tails.</p>
 | 
						||
    </td></tr>
 | 
						||
    <tr><td>upgrade</td>
 | 
						||
        <td>WebSocket</td>
 | 
						||
        <td><p>Le protocol accept<70> par <code class="module"><a href="../mod/mod_proxy_wstunnel.html">mod_proxy_wstunnel</a></code> dans
 | 
						||
	l'en-t<>te Upgrade. Voir	la documentation de ce module pour plus de
 | 
						||
	d<>tails.</p>
 | 
						||
    </td></tr>
 | 
						||
 | 
						||
    </table>
 | 
						||
 | 
						||
    <p>Si l'URL de la directive Proxy d<>bute par
 | 
						||
    <code>balancer://</code> (par exemple:
 | 
						||
    <code>balancer://cluster</code>, toute information relative au
 | 
						||
    chemin est ignor<6F>e), alors un serveur cible virtuel ne communiquant pas
 | 
						||
    r<>ellement avec le serveur d'arri<72>re-plan sera cr<63><72>. Celui-ci sera
 | 
						||
    en fait responsable de la gestion de plusieurs serveurs cibles "r<>els". Dans
 | 
						||
    ce cas, un jeu de param<61>tres particuliers s'applique <20> ce serveur cible
 | 
						||
    virtuel. Voir <code class="module"><a href="../mod/mod_proxy_balancer.html">mod_proxy_balancer</a></code> pour plus
 | 
						||
    d'informations <20> propos du fonctionnement du r<>partiteur de
 | 
						||
    charge.
 | 
						||
    </p>
 | 
						||
    <table class="bordered"><tr><th>Param<61>tres du r<>partiteur</th></tr></table>
 | 
						||
    <table>
 | 
						||
    <tr><th>Param<61>tre</th>
 | 
						||
        <th>D<>faut</th>
 | 
						||
        <th>Description</th></tr>
 | 
						||
    <tr><td>lbmethod</td>
 | 
						||
        <td>byrequests</td>
 | 
						||
        <td>M<>thode de r<>partition de charge utilis<69>e. Permet de
 | 
						||
	s<>lectionner la m<>thode de planification de la r<>partition de
 | 
						||
	charge <20> utiliser. La valeur est soit <code>byrequests</code>,
 | 
						||
	pour effectuer un d<>compte de requ<71>tes pond<6E>r<EFBFBD>es, soit
 | 
						||
	<code>bytraffic</code>, pour effectuer une r<>partition en
 | 
						||
	fonction du d<>compte des octets transmis, soit
 | 
						||
	<code>bybusyness</code>, pour effectuer une r<>partition en
 | 
						||
	fonction des requ<71>tes en attente. La valeur par d<>faut est
 | 
						||
	<code>byrequests</code>.
 | 
						||
    </td></tr>
 | 
						||
    <tr><td>maxattempts</td>
 | 
						||
        <td>1 de moins que le nombre de workers, ou 1 avec un seul
 | 
						||
	worker</td>
 | 
						||
        <td>Nombre maximum d'<27>checs avant abandon.
 | 
						||
    </td></tr>
 | 
						||
    <tr><td>nofailover</td>
 | 
						||
        <td>Off</td>
 | 
						||
        <td>Si ce param<61>tre est d<>fini <20> <code>On</code>, la session va
 | 
						||
	s'interrompre si le serveur cible est dans un <20>tat d'erreur ou
 | 
						||
	d<>sactiv<69>. D<>finissez ce param<61>tre <20> <code>On</code> si le serveur
 | 
						||
	d'arri<72>re-plan ne supporte pas la r<>plication de session.
 | 
						||
    </td></tr>
 | 
						||
    <tr><td>stickysession</td>
 | 
						||
        <td>-</td>
 | 
						||
        <td>Nom de session persistant du r<>partiteur. La valeur est
 | 
						||
	g<>n<EFBFBD>ralement du style <code>JSESSIONID</code> ou
 | 
						||
	<code>PHPSESSIONID</code>, et d<>pend du serveur d'application
 | 
						||
	d'arri<72>re-plan qui supporte les sessions. Si le serveur
 | 
						||
	d'application d'arri<72>re-plan utilise des noms diff<66>rents pour
 | 
						||
	les cookies et les identifiants cod<6F>s d'URL (comme les
 | 
						||
	conteneurs de servlet), s<>parez-les par le caract<63>re '|'. La
 | 
						||
	premi<6D>re partie contient le cookie et la seconde le chemin.<br />
 | 
						||
	Disponible depuis la version 2.4.4 du serveur HTTP Apache.
 | 
						||
    </td></tr>
 | 
						||
    <tr><td>stickysessionsep</td>
 | 
						||
        <td>"."</td>
 | 
						||
        <td>Permet de d<>finir le caract<63>re de s<>paration dans le cookie
 | 
						||
	de session. En effet, certains serveurs d'application d'arri<72>re-plan
 | 
						||
	n'utilisent pas le '.' comme caract<63>re de s<>paration. Par
 | 
						||
	exemple, le serveur Oracle Weblogic utilise le caract<63>re '!'.
 | 
						||
	Cette option permet donc de d<>finir le caract<63>re de s<>paration <20>
 | 
						||
	une valeur appropri<72>e. Si elle est d<>finie <20> 'Off', aucun
 | 
						||
	caract<63>re de s<>paration ne sera utilis<69>.
 | 
						||
    </td></tr>
 | 
						||
    <tr><td>scolonpathdelim</td>
 | 
						||
        <td>Off</td>
 | 
						||
        <td>Si ce param<61>tre est d<>fini <20> <code>On</code>, le caract<63>re
 | 
						||
	';' sera utilis<69> comme s<>parateur de chemin de session
 | 
						||
	persistante additionnel. Ceci permet principalement de simuler
 | 
						||
	le comportement de mod_jk lorsqu'on utilise des chemins du style
 | 
						||
	<code>JSESSIONID=6736bcf34;foo=aabfa</code>.
 | 
						||
    </td></tr>
 | 
						||
    <tr><td>timeout</td>
 | 
						||
        <td>0</td>
 | 
						||
        <td>D<>lai du r<>partiteur en secondes. Si ce param<61>tre est
 | 
						||
	d<>fini, sa valeur correspond <20> la dur<75>e maximale d'attente pour
 | 
						||
	un serveur cible libre. Le comportement par d<>faut est de ne pas
 | 
						||
	attendre. Utilise la syntaxe <a href="directive-dict.html#Syntax">time-interval</a>.
 | 
						||
    </td></tr>
 | 
						||
    <tr><td>failonstatus</td>
 | 
						||
        <td>-</td>
 | 
						||
        <td>Une liste de codes d'<27>tat HTTP s<>par<61>s par des virgules. Si
 | 
						||
	ce param<61>tre est pr<70>sent, le worker se mettra en erreur si le
 | 
						||
	serveur d'arri<72>re-plan renvoie un des codes d'<27>tat sp<73>cifi<66>s
 | 
						||
	dans la liste. La r<>cup<75>ration du worker s'effectue comme dans
 | 
						||
	le cas des autres erreurs de worker.
 | 
						||
    </td></tr>
 | 
						||
 | 
						||
    <tr><td>failontimeout</td>
 | 
						||
        <td>Off</td>
 | 
						||
        <td>Si ce param<61>tre est d<>fini <20> "On", un d<>lai d'attente
 | 
						||
	d<>pass<73> en entr<74>e/sortie apr<70>s envoi d'une requ<71>te au serveur
 | 
						||
	d'arri<72>re-plan va mettre le processus en <20>tat d'erreur. La
 | 
						||
	sortie de cet <20>tat d'erreur se passe de la m<>me fa<66>on que pour
 | 
						||
	les autres erreurs.<br />
 | 
						||
	Disponible depuis la version 2.4.5 du serveur HTTP Apache.
 | 
						||
    </td></tr>
 | 
						||
 | 
						||
    <tr><td>nonce</td>
 | 
						||
        <td><auto></td>
 | 
						||
        <td>Le nombre <20> usage unique de protection utilis<69> dans la page
 | 
						||
	de l'application <code>balancer-manager</code>. Par d<>faut, la
 | 
						||
	protection de la page est assur<75>e par un nombre <20> usage unique
 | 
						||
	automatique <20> base d'UUID. Si une valeur est pr<70>cis<69>e, elle sera
 | 
						||
	utilis<69>e comme nombre <20> usage unique. La valeur
 | 
						||
	<code>None</code> d<>sactive la v<>rification du nombre <20> usage
 | 
						||
	unique.
 | 
						||
    <div class="note"><h3>Note</h3>
 | 
						||
      <p>En plus du nombre <20> usage unique, la page de l'application
 | 
						||
      <code>balancer-manager</code> peut <20>tre prot<6F>g<EFBFBD>e par une ACL.</p>
 | 
						||
    </div>
 | 
						||
     </td></tr>
 | 
						||
    <tr><td>growth</td>
 | 
						||
        <td>0</td>
 | 
						||
        <td>Nombre de membres suppl<70>mentaires que l'on peut ajouter <20> ce
 | 
						||
	r<>partiteur en plus de ceux d<>finis au niveau de la
 | 
						||
	configuration.
 | 
						||
    </td></tr>
 | 
						||
    <tr><td>forcerecovery</td>
 | 
						||
        <td>On</td>
 | 
						||
        <td>Force la relance imm<6D>diate de tous les membres sans tenir
 | 
						||
	compte de leur param<61>tre retry dans le cas o<> ils sont tous en
 | 
						||
	<09>tat d'erreur. Il peut cependant arriver qu'un membre d<>j<EFBFBD>
 | 
						||
	surcharg<72> entre dans une situation critique si la relance de
 | 
						||
	tous les membres est forc<72>e sans tenir compte du param<61>tre retry
 | 
						||
	de chaque membre. Dans ce cas, d<>finissez ce param<61>tre <20>
 | 
						||
	<code>Off</code>.<br />
 | 
						||
	Disponible depuis la version 2.4.2 du serveur HTTP Apache.
 | 
						||
    </td></tr>
 | 
						||
 | 
						||
    </table>
 | 
						||
    <p>Exemple de configuration d'un r<>partiteur de charge</p>
 | 
						||
    <pre class="prettyprint lang-config">ProxyPass "/special-area" "http://special.example.com" smax=5 max=10
 | 
						||
ProxyPass "/" "balancer://mycluster/" stickysession=JSESSIONID|jsessionid nofailover=On
 | 
						||
<Proxy balancer://mycluster>
 | 
						||
    BalancerMember ajp://1.2.3.4:8009
 | 
						||
    BalancerMember ajp://1.2.3.5:8009 loadfactor=20
 | 
						||
    # Le serveur suivant est moins puissant ; on lui envoie moins de requ<71>tes,
 | 
						||
    BalancerMember ajp://1.2.3.6:8009 loadfactor=5
 | 
						||
</Proxy></pre>
 | 
						||
 | 
						||
 | 
						||
    <p>Configuration d'un serveur cible de r<>serve qui ne sera utilis<69> que si
 | 
						||
    aucun autre serveur cible n'est disponible :</p>
 | 
						||
    <pre class="prettyprint lang-config">ProxyPass "/" "balancer://hotcluster/ "
 | 
						||
<Proxy balancer://hotcluster>
 | 
						||
    BalancerMember ajp://1.2.3.4:8009 loadfactor=1
 | 
						||
    BalancerMember ajp://1.2.3.5:8009 loadfactor=2.25
 | 
						||
    # Le serveur suivant est en mode hot standby
 | 
						||
    BalancerMember ajp://1.2.3.6:8009 status=+H
 | 
						||
    ProxySet lbmethod=bytraffic
 | 
						||
</Proxy></pre>
 | 
						||
 | 
						||
 | 
						||
    <p><strong>Mot-cl<63>s suppl<70>mentaires de ProxyPass</strong></p>
 | 
						||
 | 
						||
    <p>Normalement, mod_proxy va mettre sous leur forme canonique les
 | 
						||
    URLs trait<69>es par ProxyPass. Mais ceci peut <20>tre incompatible avec
 | 
						||
    certains serveurs d'arri<72>re-plan, et en particulier avec ceux qui
 | 
						||
    utilisent <var>PATH_INFO</var>. Le mot-cl<63> optionnel
 | 
						||
    <var>nocanon</var> modifie ce comportement et permet de transmettre
 | 
						||
    le chemin d'URL sous sa forme brute au serveur d'arri<72>re-plan. Notez
 | 
						||
    que ce mot-cl<63> peut affecter la s<>curit<69> de votre serveur d'arri<72>re-plan,
 | 
						||
    car la protection limit<69>e contre les attaques <20> base d'URL que
 | 
						||
    fournit le mandataire est alors supprim<69>e.</p>
 | 
						||
 | 
						||
    <p>Par d<>faut, mod_proxy inclut la cha<68>ne de param<61>tres lors de la
 | 
						||
    g<>n<EFBFBD>ration de la variable d'environnement
 | 
						||
    <var>SCRIPT_FILENAME</var>. Le mot-cl<63> optionnel <var>noquery</var>
 | 
						||
    (disponible <20> partir de la version 2.4.1) permet d'exclure cette
 | 
						||
    cha<68>ne.</p>
 | 
						||
 | 
						||
    
 | 
						||
 | 
						||
    
 | 
						||
 | 
						||
    <p>Le mot-cl<63> optionnel <var>interpolate</var>, en combinaison avec la directive
 | 
						||
    <code class="directive">ProxyPassInterpolateEnv</code>, permet <20> ProxyPass
 | 
						||
    d'interpoler les variables d'environnement <20> l'aide de la syntaxe
 | 
						||
    <var>${VARNAME}</var>. Notez que de nombreuses variables
 | 
						||
    d'environnement standard d<>riv<69>es de CGI n'existeront pas lorsque
 | 
						||
    l'interpolation se produit ; vous devrez alors encore avoir avoir
 | 
						||
    recours <20> <code class="module"><a href="../mod/mod_rewrite.html">mod_rewrite</a></code> pour des r<>gles
 | 
						||
    complexes. Notez aussi que l'interpolation n'est pas support<72>e dans
 | 
						||
    la partie protocole d'une URL. La d<>termination dynamique du
 | 
						||
    protocole peut <20>tre effectu<74>e <20> l'aide de
 | 
						||
    <code class="module"><a href="../mod/mod_rewrite.html">mod_rewrite</a></code> comme dans l'exemple suivant :</p>
 | 
						||
 | 
						||
    <pre class="prettyprint lang-config">RewriteEngine On
 | 
						||
 | 
						||
RewriteCond %{HTTPS} =off
 | 
						||
RewriteRule . - [E=protocol:http]
 | 
						||
RewriteCond %{HTTPS} =on
 | 
						||
RewriteRule . - [E=protocol:https]
 | 
						||
 | 
						||
RewriteRule ^/mirror/foo/(.*) %{ENV:protocol}://backend.example.com/$1 [P]
 | 
						||
ProxyPassReverse  "/mirror/foo/" "http://backend.example.com/"
 | 
						||
ProxyPassReverse  "/mirror/foo/" "https://backend.example.com/"</pre>
 | 
						||
 | 
						||
 | 
						||
 | 
						||
</div>
 | 
						||
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
 | 
						||
<div class="directive-section"><h2><a name="proxypassinherit" id="proxypassinherit">Directive</a> <a name="ProxyPassInherit" id="ProxyPassInherit">ProxyPassInherit</a></h2>
 | 
						||
<table class="directive">
 | 
						||
<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>H<>ritage des directives ProxyPass d<>finies au niveau du
 | 
						||
serveur principal</td></tr>
 | 
						||
<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>ProxyPassInherit On|Off</code></td></tr>
 | 
						||
<tr><th><a href="directive-dict.html#Default">D<>faut:</a></th><td><code>ProxyPassInherit On</code></td></tr>
 | 
						||
<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur, serveur virtuel</td></tr>
 | 
						||
<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
 | 
						||
<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_proxy</td></tr>
 | 
						||
<tr><th><a href="directive-dict.html#Compatibility">Compatibilit<69>:</a></th><td>Disponible <20> partir de la version 2.4.5 du serveur
 | 
						||
HTTP Apache.</td></tr>
 | 
						||
</table>
 | 
						||
        <p>Cette directive permet <20> un serveur virtuel d'h<>riter des
 | 
						||
	directives <code class="directive"><a href="#proxypass">ProxyPass</a></code> d<>finies
 | 
						||
	au niveau du serveur principal. Si vous utilisez la fonctionnalit<69> de
 | 
						||
	modifications dynamiques du Balancer Manager, cette directive peut
 | 
						||
	causer des probl<62>mes et des comportements inattendus et doit donc
 | 
						||
	<09>tre d<>sactiv<69>e.</p>
 | 
						||
        <p>Les valeurs d<>finies au niveau du serveur principal
 | 
						||
	constituent les valeurs par d<>faut pour tous les serveurs virtuels.</p>
 | 
						||
        <p>La d<>sactivation de ProxyPassInherit d<>sactive aussi la
 | 
						||
	directive <code class="directive"><a href="#balancerinherit">BalancerInherit</a></code>.</p>
 | 
						||
    
 | 
						||
</div>
 | 
						||
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
 | 
						||
<div class="directive-section"><h2><a name="proxypassinterpolateenv" id="proxypassinterpolateenv">Directive</a> <a name="ProxyPassInterpolateEnv" id="ProxyPassInterpolateEnv">ProxyPassInterpolateEnv</a></h2>
 | 
						||
<table class="directive">
 | 
						||
<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Active l'interpolation des variables d'environnement dans
 | 
						||
les configurations de mandataires inverses</td></tr>
 | 
						||
<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>ProxyPassInterpolateEnv On|Off</code></td></tr>
 | 
						||
<tr><th><a href="directive-dict.html#Default">D<>faut:</a></th><td><code>ProxyPassInterpolateEnv Off</code></td></tr>
 | 
						||
<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur, serveur virtuel, r<>pertoire</td></tr>
 | 
						||
<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
 | 
						||
<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_proxy</td></tr>
 | 
						||
</table>
 | 
						||
    <p>Cette directive, ainsi que l'argument <var>interpolate</var> des
 | 
						||
    directives <code class="directive">ProxyPass</code>,
 | 
						||
    <code class="directive">ProxyPassReverse</code>,
 | 
						||
    <code class="directive">ProxyPassReverseCookieDomain</code> et
 | 
						||
    <code class="directive">ProxyPassReverseCookiePath</code>, permet de
 | 
						||
    configurer dynamiquement un mandataire inverse <20> l'aide de
 | 
						||
    variables d'environnement, ces derni<6E>res pouvant <20>tre d<>finies par un
 | 
						||
    autre module comme <code class="module"><a href="../mod/mod_rewrite.html">mod_rewrite</a></code>. Elle affecte les
 | 
						||
    directives <code class="directive">ProxyPass</code>,
 | 
						||
    <code class="directive">ProxyPassReverse</code>,
 | 
						||
    <code class="directive">ProxyPassReverseCookieDomain</code>, et
 | 
						||
    <code class="directive">ProxyPassReverseCookiePath</code>, en leur indiquant
 | 
						||
    de remplacer la cha<68>ne <code>${nom_var}</code> dans les directives
 | 
						||
    de configuration par la valeur de la variable d'environnement
 | 
						||
    <code>nom_var</code> si l'option <var>interpolate</var> est
 | 
						||
    sp<73>cifi<66>e.</p>
 | 
						||
    <p>Conservez cette directive <20> off (pour les performances du
 | 
						||
    serveur), sauf si vous en avez r<>ellement besoin.</p>
 | 
						||
 | 
						||
</div>
 | 
						||
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
 | 
						||
<div class="directive-section"><h2><a name="proxypassmatch" id="proxypassmatch">Directive</a> <a name="ProxyPassMatch" id="ProxyPassMatch">ProxyPassMatch</a></h2>
 | 
						||
<table class="directive">
 | 
						||
<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Fait correspondre des serveurs distants dans l'espace d'URL
 | 
						||
du serveur local en utilisant des expressions rationnelles</td></tr>
 | 
						||
<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>ProxyPassMatch [<var>regex</var>] !|<var>url</var>
 | 
						||
[<var>cl<63>=valeur</var>
 | 
						||
	<var>[cl<63>=valeur</var> ...]]</code></td></tr>
 | 
						||
<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur, serveur virtuel, r<>pertoire</td></tr>
 | 
						||
<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
 | 
						||
<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_proxy</td></tr>
 | 
						||
</table>
 | 
						||
    <p>Cette directive est identique <20> la directive <code class="directive"><a href="#proxypass">ProxyPass</a></code>, mais fait usage des
 | 
						||
    expressions rationnelles, au lieu d'une simple comparaison de
 | 
						||
    pr<70>fixes. L'expression rationnelle sp<73>cifi<66>e est compar<61>e <20>
 | 
						||
    l'<var>url</var>, et si elle correspond, le serveur va substituer
 | 
						||
    toute correspondance entre parenth<74>ses dans la cha<68>ne donn<6E>e et
 | 
						||
    l'utiliser comme nouvelle <var>url</var>.</p>
 | 
						||
 | 
						||
    <div class="note"><strong>Note : </strong>Cette directive ne peut pas <20>tre
 | 
						||
    utilis<69>e dans un contexte de niveau r<>pertoire.</div>
 | 
						||
 | 
						||
    <p>Supposons que le serveur local a pour adresse
 | 
						||
    <code>http://example.com/</code> ; alors</p>
 | 
						||
 | 
						||
    <pre class="prettyprint lang-config">ProxyPassMatch "^(/.*\.gif)$" "http://backend.example.com/$1"</pre>
 | 
						||
 | 
						||
 | 
						||
    <p>va provoquer la conversion interne de la requ<71>te locale
 | 
						||
    <code>http://example.com/foo/bar.gif</code> en une requ<71>te mandat<61>e
 | 
						||
    pour <code>http://backend.example.com/foo/bar.gif</code>.</p>
 | 
						||
 | 
						||
    <div class="note"><h3>Note</h3>
 | 
						||
      <p>L'argument URL doit pouvoir <20>tre interpr<70>t<EFBFBD> en tant qu'URL
 | 
						||
      <em>avant</em> les substitutions d'expressions rationnelles (et
 | 
						||
      doit aussi l'<27>tre apr<70>s). Ceci limite les correspondances que vous
 | 
						||
      pouvez utiliser. Par exemple, si l'on avait utilis<69></p>
 | 
						||
      <pre class="prettyprint lang-config">        ProxyPassMatch "^(/.*\.gif)$"
 | 
						||
	"http://backend.example.com:8000$1"</pre>
 | 
						||
 | 
						||
      <p>dans l'exemple pr<70>c<EFBFBD>dent, nous aurions provoqu<71> une erreur de
 | 
						||
      syntaxe au d<>marrage du serveur. C'est une bogue (PR 46665 dans
 | 
						||
      ASF bugzilla), et il est possible de la contourner en reformulant
 | 
						||
      la correspondance :</p>
 | 
						||
      <pre class="prettyprint lang-config">ProxyPassMatch "^/(.*\.gif)$" "http://backend.example.com:8000/$1"</pre>
 | 
						||
 | 
						||
    </div>
 | 
						||
 | 
						||
    <p>Le drapeau <code>!</code> vous permet de ne pas mandater un
 | 
						||
    sous-r<>pertoire donn<6E>.</p>
 | 
						||
 | 
						||
    <p>Dans une section <code class="directive"><a href="../mod/core.html#locationmatch"><LocationMatch></a></code>, le premier argument est
 | 
						||
    omis et l'expression rationnelle est obtenue <20> partir de la directive
 | 
						||
    <code class="directive"><a href="../mod/core.html#locationmatch"><LocationMatch></a></code>.</p>
 | 
						||
 | 
						||
    <p>Si vous avez besoin d'une configuration du mandataire inverse
 | 
						||
    plus flexible, voyez la directive <code class="directive"><a href="../mod/mod_rewrite.html#rewriterule">RewriteRule</a></code> avec le drapeau
 | 
						||
    <code>[P]</code>.</p>
 | 
						||
 | 
						||
    <div class="note">
 | 
						||
 	<h3>Substitution par d<>faut</h3>
 | 
						||
 	<p>Lorsque le param<61>tre URL n'utilise pas de r<>f<EFBFBD>rences arri<72>res
 | 
						||
	dans l'expression rationnelle, l'URL originale sera ajout<75>e au
 | 
						||
	param<61>tre URL.
 | 
						||
 	</p>
 | 
						||
 	</div>
 | 
						||
 | 
						||
    <div class="warning">
 | 
						||
      <h3>Avertissement <20> propos de la s<>curit<69></h3>
 | 
						||
      <p>Lors de la construction de l'URL cible de la r<>gle, il convient
 | 
						||
      de prendre en compte l'impact en mati<74>re de s<>curit<69> qu'aura le
 | 
						||
      fait de permettre au client d'influencer le jeu d'URLs pour
 | 
						||
      lesquelles votre serveur agira en tant que mandataire.
 | 
						||
      Assurez-vous que la partie protocole://nom-serveur de l'URL soit
 | 
						||
      fixe, ou ne permette pas au client de l'influencer induement.</p>
 | 
						||
    </div>
 | 
						||
 | 
						||
</div>
 | 
						||
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
 | 
						||
<div class="directive-section"><h2><a name="proxypassreverse" id="proxypassreverse">Directive</a> <a name="ProxyPassReverse" id="ProxyPassReverse">ProxyPassReverse</a></h2>
 | 
						||
<table class="directive">
 | 
						||
<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<6F>e
 | 
						||
par un serveur mandat<61> en inverse</td></tr>
 | 
						||
<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>ProxyPassReverse [<var>chemin</var>] <var>url</var>
 | 
						||
[<var>interpolate</var>]</code></td></tr>
 | 
						||
<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur, serveur virtuel, r<>pertoire</td></tr>
 | 
						||
<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
 | 
						||
<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_proxy</td></tr>
 | 
						||
</table>
 | 
						||
    <p>Cette directive permet de faire en sorte qu'Apache httpd ajuste l'URL
 | 
						||
    dans les en-t<>tes <code>Location</code>,
 | 
						||
    <code>Content-Location</code> et <code>URI</code> des r<>ponses de
 | 
						||
    redirection HTTP. Ceci est essentiel lorsqu'Apache httpd est utilis<69> en
 | 
						||
    tant que mandataire inverse (ou passerelle), afin d'<27>viter de
 | 
						||
    court-circuiter le mandataire inverse suite aux redirections HTTP
 | 
						||
    sur le serveur d'arri<72>re-plan qui restent derri<72>re le mandataire
 | 
						||
    inverse.</p>
 | 
						||
 | 
						||
    <p>Seuls les en-t<>tes de r<>ponse HTTP sp<73>cialement mentionn<6E>s
 | 
						||
    ci-dessus seront r<><72>crits. Apache httpd ne r<><72>crira ni les autres en-t<>tes
 | 
						||
    de r<>ponse, ni par d<>faut les r<>f<EFBFBD>rences d'URLs dans les pages HTML. Cela
 | 
						||
    signifie que dans le cas o<> un contenu mandat<61> contient des
 | 
						||
    r<>f<EFBFBD>rences <20> des URLs absolues, elles court-circuiteront le
 | 
						||
    mandataire. Pour r<><72>crire un contenu HTML afin qu'il corresponde au
 | 
						||
    mandataire, vous devez charger et activer le module
 | 
						||
    <code class="module"><a href="../mod/mod_proxy_html.html">mod_proxy_html</a></code>.
 | 
						||
    </p>
 | 
						||
 | 
						||
    <p><var>chemin</var> est le nom d'un chemin virtuel local.
 | 
						||
    <var>url</var> est une URL partielle pour le serveur distant. Ces
 | 
						||
    param<61>tres s'utilisent de la m<>me fa<66>on qu'avec la directive <code class="directive"><a href="#proxypass">ProxyPass</a></code>.</p>
 | 
						||
 | 
						||
    <p>Supposons par exemple que le serveur local a pour adresse
 | 
						||
    <code>http://example.com/</code> ; alors</p>
 | 
						||
 | 
						||
    <pre class="prettyprint lang-config">ProxyPass         "/mirror/foo/" "http://backend.example.com/"
 | 
						||
ProxyPassReverse  "/mirror/foo/" "http://backend.example.com/"
 | 
						||
ProxyPassReverseCookieDomain  backend.example.com  public.example.com
 | 
						||
ProxyPassReverseCookiePath  "/"  "/mirror/foo/"</pre>
 | 
						||
 | 
						||
 | 
						||
    <p>ne va pas seulement provoquer la conversion interne d'une requ<71>te
 | 
						||
    locale pour <code>http://example.com/miroir/foo/bar</code> en une
 | 
						||
    requ<71>te mandat<61>e pour <code>http://backend.example.com/bar</code>
 | 
						||
    (la fonctionnalit<69> fournie par <code>ProxyPass</code>). Il va
 | 
						||
    aussi s'occuper des redirections que le serveur
 | 
						||
    <code>backend.example.com</code> envoie lorsque
 | 
						||
    <code>http://backend.example.com/bar</code> est redirig<69> par
 | 
						||
    celui-ci vers <code>http://backend.example.com/quux</code>, Apache
 | 
						||
    httpd corrige ceci en <code>http://example.com/miroir/foo/quux</code>
 | 
						||
    avant de faire suivre la redirection HTTP au client. Notez que le
 | 
						||
    nom d'h<>te utilis<69> pour construire l'URL est choisi en respectant la
 | 
						||
    d<>finition de la directive <code class="directive"><a href="../mod/core.html#usecanonicalname">UseCanonicalName</a></code>.</p>
 | 
						||
 | 
						||
    <p>Notez que la directive <code class="directive">ProxyPassReverse</code>
 | 
						||
    peut aussi <20>tre utilis<69>e en conjonction avec la
 | 
						||
    fonctionnalit<69> de mandataire
 | 
						||
    (<code>RewriteRule ...  [P]</code>) du module
 | 
						||
    <code class="module"><a href="../mod/mod_rewrite.html">mod_rewrite</a></code>, car elle ne d<>pend pas d'une directive
 | 
						||
    <code class="directive"><a href="#proxypass">ProxyPass</a></code>
 | 
						||
    correspondante.</p>
 | 
						||
 | 
						||
    <p>Le mot-cl<63> optionnel <var>interpolate</var>,
 | 
						||
    utilis<69> en combinaison avec la directive
 | 
						||
    <code class="directive">ProxyPassInterpolateEnv</code>, permet
 | 
						||
    l'interpolation des variables d'environnement sp<73>cifi<66>es en
 | 
						||
    utilisant le format <var>${VARNAME}</var>. Notez que l'interpolation
 | 
						||
    n'est pas support<72>e dans la partie protocole d'une URL.
 | 
						||
    </p>
 | 
						||
 | 
						||
    <p>Lorsque cette directive est utilis<69>e dans une section <code class="directive"><a href="../mod/core.html#location"><Location></a></code>, le premier
 | 
						||
    argument est omis et le r<>pertoire local est obtenu <20> partir de
 | 
						||
    l'argument de la directive <code class="directive"><a href="../mod/core.html#location"><Location></a></code>. Il en est de m<>me <20> l'int<6E>rieur
 | 
						||
    d'une section <code class="directive"><a href="../mod/core.html#locationmatch"><LocationMatch></a></code>, mais le r<>sultat ne sera
 | 
						||
    probablement pas celui attendu car ProxyPassReverse va interpr<70>ter
 | 
						||
    l'expression rationnelle litt<74>ralement comme un chemin ; si besoin
 | 
						||
    est dans ce cas, d<>finissez la directive ProxyPassReverse en dehors
 | 
						||
    de la section, ou dans une section <code class="directive"><a href="../mod/core.html#location"><Location></a></code> s<>par<61>e.</p>
 | 
						||
 | 
						||
    <p>Cette directive ne peut pas <20>tre plac<61>e dans une section
 | 
						||
    <code class="directive"><a href="../mod/core.html#directory"><Directory></a></code> ou
 | 
						||
    <code class="directive"><a href="../mod/core.html#files"><Files></a></code>.</p>
 | 
						||
 | 
						||
</div>
 | 
						||
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
 | 
						||
<div class="directive-section"><h2><a name="proxypassreversecookiedomain" id="proxypassreversecookiedomain">Directive</a> <a name="ProxyPassReverseCookieDomain" id="ProxyPassReverseCookieDomain">ProxyPassReverseCookieDomain</a></h2>
 | 
						||
<table class="directive">
 | 
						||
<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Ajuste la cha<68>ne correspondant au domaine dans les en-t<>tes
 | 
						||
Set-Cookie en provenance d'un serveur mandat<61></td></tr>
 | 
						||
<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>ProxyPassReverseCookieDomain <var>domaine-interne</var>
 | 
						||
<var>domaine-public</var> [<var>interpolate</var>]</code></td></tr>
 | 
						||
<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur, serveur virtuel, r<>pertoire</td></tr>
 | 
						||
<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
 | 
						||
<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_proxy</td></tr>
 | 
						||
</table>
 | 
						||
<p>L'utilisation de cette directive est similaire <20> celle de la
 | 
						||
directive <code class="directive"><a href="#proxypassreverse">ProxyPassReverse</a></code>,
 | 
						||
mais au lieu de r<><72>crire des en-t<>tes qui contiennent des URLs, elle
 | 
						||
r<EFBFBD><EFBFBD>crit la cha<68>ne correspondant au domaine dans les en-t<>tes
 | 
						||
<code>Set-Cookie</code>.</p>
 | 
						||
 | 
						||
</div>
 | 
						||
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
 | 
						||
<div class="directive-section"><h2><a name="proxypassreversecookiepath" id="proxypassreversecookiepath">Directive</a> <a name="ProxyPassReverseCookiePath" id="ProxyPassReverseCookiePath">ProxyPassReverseCookiePath</a></h2>
 | 
						||
<table class="directive">
 | 
						||
<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Ajuste la cha<68>ne correspondant au chemin dans les en-t<>tes
 | 
						||
Set-Cookie en provenance d'un serveur mandat<61></td></tr>
 | 
						||
<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>ProxyPassReverseCookiePath <var>chemin-interne</var>
 | 
						||
<var>chemin-public</var> [<var>interpolate</var>]</code></td></tr>
 | 
						||
<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur, serveur virtuel, r<>pertoire</td></tr>
 | 
						||
<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
 | 
						||
<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_proxy</td></tr>
 | 
						||
</table>
 | 
						||
<p>
 | 
						||
Cette directive s'av<61>re utile en conjonction avec la directive
 | 
						||
<code class="directive"><a href="#proxypassreverse">ProxyPassReverse</a></code> dans les
 | 
						||
situations o<> les chemins d'URL d'arri<72>re-plan correspondent <20> des
 | 
						||
chemins publics sur le mandataire inverse. Cette directive permet de
 | 
						||
r<EFBFBD><EFBFBD>crire la cha<68>ne <code>path</code> dans les en-t<>tes
 | 
						||
<code>Set-Cookie</code>. Si le d<>but du chemin du cookie correspond <20>
 | 
						||
<var>chemin-interne</var>, le chemin du cookie sera remplac<61> par
 | 
						||
<var>chemin-public</var>.
 | 
						||
</p><p>
 | 
						||
Dans l'exemple fourni avec la directive <code class="directive"><a href="#proxypassreverse">ProxyPassReverse</a></code>, la directive :
 | 
						||
</p>
 | 
						||
    <pre class="prettyprint lang-config">ProxyPassReverseCookiePath  "/"  "/mirror/foo/"</pre>
 | 
						||
 | 
						||
<p>
 | 
						||
va r<><72>crire un cookie poss<73>dant un chemin d'arri<72>re-plan <code>/</code>
 | 
						||
(ou <code>/example</code> ou en fait tout chemin)
 | 
						||
en <code>/mirror/foo/</code>..
 | 
						||
</p>
 | 
						||
 | 
						||
</div>
 | 
						||
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
 | 
						||
<div class="directive-section"><h2><a name="proxypreservehost" id="proxypreservehost">Directive</a> <a name="ProxyPreserveHost" id="ProxyPreserveHost">ProxyPreserveHost</a></h2>
 | 
						||
<table class="directive">
 | 
						||
<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Utilise l'en-t<>te de requ<71>te entrante Host pour la requ<71>te
 | 
						||
du mandataire</td></tr>
 | 
						||
<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>ProxyPreserveHost On|Off</code></td></tr>
 | 
						||
<tr><th><a href="directive-dict.html#Default">D<>faut:</a></th><td><code>ProxyPreserveHost Off</code></td></tr>
 | 
						||
<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur, serveur virtuel, r<>pertoire</td></tr>
 | 
						||
<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
 | 
						||
<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_proxy</td></tr>
 | 
						||
<tr><th><a href="directive-dict.html#Compatibility">Compatibilit<69>:</a></th><td>Utilisable
 | 
						||
dans un contexte de r<>pertoire depuis la version 2.3.3.</td></tr>
 | 
						||
</table>
 | 
						||
    <p>Lorsqu'elle est activ<69>e, cette directive va transmettre l'en-t<>te
 | 
						||
    Host: de la requ<71>te entrante vers le serveur mandat<61>, au lieu du nom
 | 
						||
    d'h<>te sp<73>cifi<66> par la directive <code class="directive"><a href="#proxypass">ProxyPass</a></code>.</p>
 | 
						||
 | 
						||
    <p>Cette directive est habituellement d<>finie <20> <code>Off</code>.
 | 
						||
    Elle est principalement utile dans les configurations particuli<6C>res
 | 
						||
    comme l'h<>bergement virtuel mandat<61> en masse <20> base de nom, o<>
 | 
						||
    l'en-t<>te Host d'origine doit <20>tre <20>valu<6C> par le serveur
 | 
						||
    d'arri<72>re-plan.</p>
 | 
						||
 | 
						||
</div>
 | 
						||
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
 | 
						||
<div class="directive-section"><h2><a name="proxyreceivebuffersize" id="proxyreceivebuffersize">Directive</a> <a name="ProxyReceiveBufferSize" id="ProxyReceiveBufferSize">ProxyReceiveBufferSize</a></h2>
 | 
						||
<table class="directive">
 | 
						||
<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Taille du tampon r<>seau pour les connexions mandat<61>es HTTP
 | 
						||
et FTP</td></tr>
 | 
						||
<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>ProxyReceiveBufferSize <var>octets</var></code></td></tr>
 | 
						||
<tr><th><a href="directive-dict.html#Default">D<>faut:</a></th><td><code>ProxyReceiveBufferSize 0</code></td></tr>
 | 
						||
<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur, serveur virtuel</td></tr>
 | 
						||
<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
 | 
						||
<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_proxy</td></tr>
 | 
						||
</table>
 | 
						||
    <p>La directive <code class="directive">ProxyReceiveBufferSize</code> permet
 | 
						||
    de sp<73>cifier une taille de tampon r<>seau explicite (TCP/IP) pour les
 | 
						||
    connexions mandat<61>es HTTP et FTP, afin d'am<61>liorer le d<>bit de
 | 
						||
    donn<6E>es. Elle doit <20>tre sup<75>rieure <20> <code>512</code> ou d<>finie <20>
 | 
						||
    <code>0</code> pour indiquer que la taille de tampon par d<>faut du
 | 
						||
    syst<73>me doit <20>tre utilis<69>e.</p>
 | 
						||
 | 
						||
    <div class="example"><h3>Exemple</h3><pre class="prettyprint lang-config">ProxyReceiveBufferSize 2048</pre>
 | 
						||
</div>
 | 
						||
 | 
						||
</div>
 | 
						||
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
 | 
						||
<div class="directive-section"><h2><a name="proxyremote" id="proxyremote">Directive</a> <a name="ProxyRemote" id="ProxyRemote">ProxyRemote</a></h2>
 | 
						||
<table class="directive">
 | 
						||
<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Mandataire distant <20> utiliser pour traiter certaines
 | 
						||
requ<EFBFBD>tes</td></tr>
 | 
						||
<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>ProxyRemote <var>comparaison</var> <var>serveur-distant</var></code></td></tr>
 | 
						||
<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur, serveur virtuel</td></tr>
 | 
						||
<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
 | 
						||
<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_proxy</td></tr>
 | 
						||
</table>
 | 
						||
    <p>Cette directive permet de d<>finir des mandataires distants pour
 | 
						||
    ce mandataire. <var>comparaison</var> est soit le nom d'un protocole
 | 
						||
    que supporte le serveur distant, soit une URL partielle pour
 | 
						||
    laquelle le serveur distant devra <20>tre utilis<69>, soit <code>*</code>
 | 
						||
    pour indiquer que le serveur distant doit <20>tre utilis<69> pour toutes
 | 
						||
    les requ<71>tes. <var>serveur-distant</var> est une URL partielle
 | 
						||
    correspondant au serveur distant. Syntaxe : </p>
 | 
						||
 | 
						||
    <div class="example"><p><code>
 | 
						||
      <dfn>serveur-distant</dfn> =
 | 
						||
          <var>protocole</var>://<var>nom-serveur</var>[:<var>port</var>]
 | 
						||
    </code></p></div>
 | 
						||
 | 
						||
    <p><var>protocole</var> est effectivement le protocole <20> utiliser
 | 
						||
    pour communiquer avec le serveur distant ; ce module ne supporte que
 | 
						||
    <code>http</code> et <code>https</code>. Lorsqu'on utilise
 | 
						||
    <code>https</code>, les requ<71>tes sont redirig<69>es par le mandataire
 | 
						||
    distant en utilisant la m<>thode HTTP CONNECT.</p>
 | 
						||
 | 
						||
    <div class="example"><h3>Exemple</h3><pre class="prettyprint lang-config">ProxyRemote http://goodguys.example.com/ http://mirrorguys.example.com:8000
 | 
						||
ProxyRemote * http://cleverproxy.localdomain
 | 
						||
ProxyRemote ftp http://ftpproxy.mydomain:8080</pre>
 | 
						||
</div>
 | 
						||
 | 
						||
    <p>Dans la derni<6E>re ligne de l'exemple, le mandataire va faire
 | 
						||
    suivre les requ<71>tes FTP, encapsul<75>es dans une autre requ<71>te mandat<61>e
 | 
						||
    HTTP, vers un autre mandataire capable de les traiter.</p>
 | 
						||
 | 
						||
    <p>Cette directive supporte aussi les configurations de mandataire
 | 
						||
    inverse ; un serveur web d'arri<72>re-plan peut <20>tre int<6E>gr<67> dans
 | 
						||
    l'espace d'URL d'un serveur virtuel, m<>me si ce serveur est cach<63>
 | 
						||
    par un autre mandataire direct.</p>
 | 
						||
 | 
						||
</div>
 | 
						||
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
 | 
						||
<div class="directive-section"><h2><a name="proxyremotematch" id="proxyremotematch">Directive</a> <a name="ProxyRemoteMatch" id="ProxyRemoteMatch">ProxyRemoteMatch</a></h2>
 | 
						||
<table class="directive">
 | 
						||
<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Le mandataire distant <20> utiliser pour traiter les requ<71>tes
 | 
						||
correspondant <20> une expression rationnelle</td></tr>
 | 
						||
<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>ProxyRemoteMatch <var>regex</var> <var>serveur-distant</var></code></td></tr>
 | 
						||
<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur, serveur virtuel</td></tr>
 | 
						||
<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
 | 
						||
<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_proxy</td></tr>
 | 
						||
</table>
 | 
						||
    <p>La directive <code class="directive">ProxyRemoteMatch</code> est
 | 
						||
    identique <20> la directive <code class="directive"><a href="#proxyremote">ProxyRemote</a></code>, <20> l'exception du
 | 
						||
    premier argument qui est une <a class="glossarylink" href="../glossary.html#regex" title="voir glossaire">expression
 | 
						||
    rationnelle</a> <20> mettre en correspondance avec l'URL de la
 | 
						||
    requ<71>te.</p>
 | 
						||
 | 
						||
</div>
 | 
						||
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
 | 
						||
<div class="directive-section"><h2><a name="proxyrequests" id="proxyrequests">Directive</a> <a name="ProxyRequests" id="ProxyRequests">ProxyRequests</a></h2>
 | 
						||
<table class="directive">
 | 
						||
<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Active la fonctionnalit<69> (standard) de mandataire
 | 
						||
direct</td></tr>
 | 
						||
<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>ProxyRequests On|Off</code></td></tr>
 | 
						||
<tr><th><a href="directive-dict.html#Default">D<>faut:</a></th><td><code>ProxyRequests Off</code></td></tr>
 | 
						||
<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur, serveur virtuel</td></tr>
 | 
						||
<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
 | 
						||
<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_proxy</td></tr>
 | 
						||
</table>
 | 
						||
    <p>Cette directive permet d'activer/d<>sactiver la fonctionnalit<69> de
 | 
						||
    serveur mandataire direct d'Apache httpd. D<>finir ProxyRequests <20>
 | 
						||
    <code>Off</code> n'interdit pas l'utilisation de la directive
 | 
						||
    <code class="directive"><a href="#proxypass">ProxyPass</a></code>.</p>
 | 
						||
 | 
						||
    <p>Pour une configuration typique de mandataire inverse ou
 | 
						||
    passerelle, cette directive doit <20>tre d<>finie <20>
 | 
						||
    <code>Off</code>.</p>
 | 
						||
 | 
						||
    <p>Afin d'activer la fonctionnalit<69> de mandataire pour des sites
 | 
						||
    HTTP et/ou FTP, les modules <code class="module"><a href="../mod/mod_proxy_http.html">mod_proxy_http</a></code> et/ou
 | 
						||
    <code class="module"><a href="../mod/mod_proxy_ftp.html">mod_proxy_ftp</a></code> doivent <20>galement <20>tre charg<72>s dans le
 | 
						||
    serveur.</p>
 | 
						||
 | 
						||
    <p>Pour activer la fonctionnalit<69> de mandataire sur les sites chiffr<66>s en HTTPS, le module
 | 
						||
    <code class="module"><a href="../mod/mod_proxy_connect.html">mod_proxy_connect</a></code> doit <20>galement <20>tre charg<72> dans le serveur.</p>
 | 
						||
 | 
						||
    <div class="warning"><h3>Avertissement</h3>
 | 
						||
      <p>N'activez pas la fonctionnalit<69> de mandataire avec la directive
 | 
						||
      <code class="directive"><a href="#proxyrequests">ProxyRequests</a></code> avant
 | 
						||
      d'avoir <a href="#access">s<>curis<69> votre serveur</a>. Les serveurs
 | 
						||
      mandataires ouverts sont dangereux non seulement pour votre
 | 
						||
      r<>seau, mais aussi pour l'Internet au sens large.</p>
 | 
						||
    </div>
 | 
						||
 | 
						||
<h3>Voir aussi</h3>
 | 
						||
<ul>
 | 
						||
<li><a href="#forwardreverse">Mandataires/Passerelles directs et
 | 
						||
inverses</a></li>
 | 
						||
</ul>
 | 
						||
</div>
 | 
						||
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
 | 
						||
<div class="directive-section"><h2><a name="proxyset" id="proxyset">Directive</a> <a name="ProxySet" id="ProxySet">ProxySet</a></h2>
 | 
						||
<table class="directive">
 | 
						||
<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>D<>finit diff<66>rents param<61>tres relatifs <20> la r<>partition de
 | 
						||
charge des mandataires et aux membres des groupes de r<>partition de
 | 
						||
charge</td></tr>
 | 
						||
<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>ProxySet <var>url</var> <var>cl<63>=valeur [cl<63>=valeur ...]</var></code></td></tr>
 | 
						||
<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>r<>pertoire</td></tr>
 | 
						||
<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
 | 
						||
<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_proxy</td></tr>
 | 
						||
</table>
 | 
						||
    <p>Cette directive propose une m<>thode alternative pour d<>finir tout
 | 
						||
    param<61>tre relatif aux r<>partiteurs de charge et serveurs cibles de
 | 
						||
    mandataires normalement d<>finis via la directive <code class="directive"><a href="#proxypass">ProxyPass</a></code>. Si elle se trouve dans un
 | 
						||
    conteneur <code><Proxy <var>url de r<>partiteur|url de
 | 
						||
    serveur cible</var>></code>, l'argument <var>url</var> n'est pas
 | 
						||
    n<>cessaire. Comme effet de bord, le r<>partiteur ou serveur cible respectif
 | 
						||
    est cr<63><72>. Ceci peut s'av<61>rer utile pour la mise en oeuvre d'un
 | 
						||
    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>
 | 
						||
 | 
						||
    <div class="example"><pre class="prettyprint lang-config"><Proxy balancer://hotcluster>
 | 
						||
    BalancerMember http://www2.example.com:8080 loadfactor=1
 | 
						||
    BalancerMember http://www3.example.com:8080 loadfactor=2
 | 
						||
    ProxySet lbmethod=bytraffic
 | 
						||
</Proxy></pre>
 | 
						||
</div>
 | 
						||
 | 
						||
    <pre class="prettyprint lang-config"><Proxy http://backend>
 | 
						||
    ProxySet keepalive=On
 | 
						||
</Proxy></pre>
 | 
						||
 | 
						||
 | 
						||
    <pre class="prettyprint lang-config">ProxySet balancer://foo lbmethod=bytraffic timeout=15</pre>
 | 
						||
 | 
						||
 | 
						||
    <pre class="prettyprint lang-config">ProxySet ajp://backend:7001 timeout=15</pre>
 | 
						||
 | 
						||
 | 
						||
   <div class="warning"><h3>Avertissement</h3>
 | 
						||
      <p>Gardez <20> l'esprit qu'une m<>me cl<63> de param<61>tre peut avoir
 | 
						||
      diff<66>rentes significations selon qu'elle s'applique <20> un
 | 
						||
      r<>partiteur ou <20> un serveur cible, et ceci est illustr<74> par les deux
 | 
						||
      exemples pr<70>c<EFBFBD>dents o<> il est question d'un timeout.</p>
 | 
						||
   </div>
 | 
						||
 | 
						||
 | 
						||
</div>
 | 
						||
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
 | 
						||
<div class="directive-section"><h2><a name="proxysourceaddress" id="proxysourceaddress">Directive</a> <a name="ProxySourceAddress" id="ProxySourceAddress">ProxySourceAddress</a></h2>
 | 
						||
<table class="directive">
 | 
						||
<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>D<>finit l'adresse IP locale pour les connexions mandat<61>es
 | 
						||
sortantes</td></tr>
 | 
						||
<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>ProxySourceAddress <var>adresse</var></code></td></tr>
 | 
						||
<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur, serveur virtuel</td></tr>
 | 
						||
<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
 | 
						||
<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_proxy</td></tr>
 | 
						||
<tr><th><a href="directive-dict.html#Compatibility">Compatibilit<69>:</a></th><td>Disponible depuis la version 2.3.9</td></tr>
 | 
						||
</table>
 | 
						||
    <p>Cette directive permet de d<>finir une adresse IP locale
 | 
						||
    sp<73>cifique <20> laquelle faire r<>f<EFBFBD>rence lors d'une connexion <20> un
 | 
						||
    serveur d'arri<72>re-plan.</p>
 | 
						||
 | 
						||
 | 
						||
</div>
 | 
						||
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
 | 
						||
<div class="directive-section"><h2><a name="proxystatus" id="proxystatus">Directive</a> <a name="ProxyStatus" id="ProxyStatus">ProxyStatus</a></h2>
 | 
						||
<table class="directive">
 | 
						||
<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Affiche l'<27>tat du r<>partiteur de charge du mandataire dans
 | 
						||
mod_status</td></tr>
 | 
						||
<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>ProxyStatus Off|On|Full</code></td></tr>
 | 
						||
<tr><th><a href="directive-dict.html#Default">D<>faut:</a></th><td><code>ProxyStatus Off</code></td></tr>
 | 
						||
<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur, serveur virtuel</td></tr>
 | 
						||
<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
 | 
						||
<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_proxy</td></tr>
 | 
						||
</table>
 | 
						||
    <p>Cette directive permet de sp<73>cifier si les donn<6E>es d'<27>tat du
 | 
						||
    r<>partiteur de charge du mandataire doivent <20>tre affich<63>es via la
 | 
						||
    page d'<27>tat du serveur du module <code class="module"><a href="../mod/mod_status.html">mod_status</a></code>.</p>
 | 
						||
    <div class="note"><h3>Note</h3>
 | 
						||
      <p>L'argument <strong>Full</strong> produit le m<>me effet que
 | 
						||
      l'argument <strong>On</strong>.</p>
 | 
						||
    </div>
 | 
						||
 | 
						||
 | 
						||
</div>
 | 
						||
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
 | 
						||
<div class="directive-section"><h2><a name="proxytimeout" id="proxytimeout">Directive</a> <a name="ProxyTimeout" id="ProxyTimeout">ProxyTimeout</a></h2>
 | 
						||
<table class="directive">
 | 
						||
<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>D<>lai d'attente r<>seau pour les requ<71>tes
 | 
						||
mandat<EFBFBD>es</td></tr>
 | 
						||
<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>ProxyTimeout <var>time-interval</var>[s]</code></td></tr>
 | 
						||
<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>
 | 
						||
<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur, serveur virtuel</td></tr>
 | 
						||
<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
 | 
						||
<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_proxy</td></tr>
 | 
						||
</table>
 | 
						||
    <p>Cette directive permet <20> l'utilisateur de sp<73>cifier un d<>lai pour
 | 
						||
    les requ<71>tes mandat<61>es. Ceci s'av<61>re utile dans le cas d'un serveur
 | 
						||
    d'applications lent et bogu<67> qui a tendance <20> se bloquer, et si vous
 | 
						||
    pr<70>f<EFBFBD>rez simplement renvoyer une erreur timeout et abandonner la
 | 
						||
    connexion en douceur plut<75>t que d'attendre jusqu'<27> ce que le serveur
 | 
						||
    veuille bien r<>pondre.</p>
 | 
						||
 | 
						||
</div>
 | 
						||
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
 | 
						||
<div class="directive-section"><h2><a name="proxyvia" id="proxyvia">Directive</a> <a name="ProxyVia" id="ProxyVia">ProxyVia</a></h2>
 | 
						||
<table class="directive">
 | 
						||
<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Information fournie dans l'en-t<>te de r<>ponse HTTP
 | 
						||
<code>Via</code> pour les requ<71>tes mandat<61>es</td></tr>
 | 
						||
<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>ProxyVia On|Off|Full|Block</code></td></tr>
 | 
						||
<tr><th><a href="directive-dict.html#Default">D<>faut:</a></th><td><code>ProxyVia Off</code></td></tr>
 | 
						||
<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur, serveur virtuel</td></tr>
 | 
						||
<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
 | 
						||
<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_proxy</td></tr>
 | 
						||
</table>
 | 
						||
    <p>Cette directive permet de contr<74>ler l'utilisation de l'en-t<>te
 | 
						||
    HTTP <code>Via:</code> par le mandataire. Le but recherch<63> est de
 | 
						||
    contr<74>ler le flux des requ<71>tes mandat<61>es tout au long d'une cha<68>ne
 | 
						||
    de serveurs mandataires. Voir <a href="http://www.ietf.org/rfc/rfc2616.txt">RFC 2616</a> (HTTP/1.1),
 | 
						||
    section 14.45 pour une description des lignes d'en-t<>te
 | 
						||
    <code>Via:</code>.</p>
 | 
						||
 | 
						||
    <ul>
 | 
						||
    <li>Si elle est d<>finie <20> <code>Off</code>, valeur par d<>faut, cette
 | 
						||
    directive n'effectue aucun traitement particulier. Si une requ<71>te ou
 | 
						||
    une r<>ponse contient un en-t<>te <code>Via:</code>, il est transmis
 | 
						||
    sans modification.</li>
 | 
						||
 | 
						||
    <li>Si elle est d<>finie <20> <code>On</code>, chaque requ<71>te ou r<>ponse
 | 
						||
    se verra ajouter une ligne d'en-t<>te <code>Via:</code> pour le
 | 
						||
    serveur courant.</li>
 | 
						||
 | 
						||
    <li>Si elle est d<>finie <20> <code>Full</code>, chaque ligne d'en-t<>te
 | 
						||
    <code>Via:</code> se verra ajouter la version du serveur Apache
 | 
						||
    httpd sous la forme d'un champ de commentaire <code>Via:</code>.</li>
 | 
						||
 | 
						||
    <li>Si elle est d<>finie <20> <code>Block</code>, chaque requ<71>te
 | 
						||
    mandat<61>e verra ses lignes d'en-t<>te <code>Via:</code> supprim<69>es.
 | 
						||
    Aucun nouvel en-t<>te <code>Via:</code> ne sera g<>n<EFBFBD>r<EFBFBD>.</li>
 | 
						||
    </ul>
 | 
						||
 | 
						||
</div>
 | 
						||
</div>
 | 
						||
<div class="bottomlang">
 | 
						||
<p><span>Langues Disponibles: </span><a href="../en/mod/mod_proxy.html" hreflang="en" rel="alternate" title="English"> en </a> |
 | 
						||
<a href="../fr/mod/mod_proxy.html" title="Fran<61>ais"> fr </a> |
 | 
						||
<a href="../ja/mod/mod_proxy.html" hreflang="ja" rel="alternate" title="Japanese"> ja </a></p>
 | 
						||
</div><div class="top"><a href="#page-header"><img src="../images/up.gif" alt="top" /></a></div><div class="section"><h2><a id="comments_section" name="comments_section">Commentaires</a></h2><div class="warning"><strong>Notice:</strong><br />This is not a Q&A section. Comments placed here should be pointed towards suggestions on improving the documentation or server, and may be removed again by our moderators if they are either implemented or considered invalid/off-topic. Questions on how to manage the Apache HTTP Server should be directed at either our IRC channel, #httpd, on Freenode, or sent to our <a href="http://httpd.apache.org/lists.html">mailing lists</a>.</div>
 | 
						||
<script type="text/javascript"><!--//--><![CDATA[//><!--
 | 
						||
var comments_shortname = 'httpd';
 | 
						||
var comments_identifier = 'http://httpd.apache.org/docs/trunk/mod/mod_proxy.html';
 | 
						||
(function(w, d) {
 | 
						||
    if (w.location.hostname.toLowerCase() == "httpd.apache.org") {
 | 
						||
        d.write('<div id="comments_thread"><\/div>');
 | 
						||
        var s = d.createElement('script');
 | 
						||
        s.type = 'text/javascript';
 | 
						||
        s.async = true;
 | 
						||
        s.src = 'https://comments.apache.org/show_comments.lua?site=' + comments_shortname + '&page=' + comments_identifier;
 | 
						||
        (d.getElementsByTagName('head')[0] || d.getElementsByTagName('body')[0]).appendChild(s);
 | 
						||
    }
 | 
						||
    else {
 | 
						||
        d.write('<div id="comments_thread">Comments are disabled for this page at the moment.<\/div>');
 | 
						||
    }
 | 
						||
})(window, document);
 | 
						||
//--><!]]></script></div><div id="footer">
 | 
						||
<p class="apache">Copyright 2018 The Apache Software Foundation.<br />Autoris<69> sous <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache License, Version 2.0</a>.</p>
 | 
						||
<p class="menu"><a href="../mod/">Modules</a> | <a href="../mod/quickreference.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[//><!--
 | 
						||
if (typeof(prettyPrint) !== 'undefined') {
 | 
						||
    prettyPrint();
 | 
						||
}
 | 
						||
//--><!]]></script>
 | 
						||
</body></html> |