1
0
mirror of https://github.com/apache/httpd.git synced 2025-07-10 08:01:00 +03:00
Files
apache/docs/manual/mod/mod_proxy.html.fr
Lucien Gentis f0088407a3 Rebuild.
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1749034 13f79535-47bb-0310-9956-ffa450edef68
2016-06-18 14:00:15 +00:00

2290 lines
132 KiB
Plaintext
Raw Blame History

<?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="&lt;-" alt="&lt;-" src="../images/left.gif" /></a></div>
<div id="path">
<a href="http://www.apache.org/">Apache</a> &gt; <a href="http://httpd.apache.org/">Serveur HTTP</a> &gt; <a href="http://httpd.apache.org/docs/">Documentation</a> &gt; <a href="../">Version 2.5</a> &gt; <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">&nbsp;en&nbsp;</a> |
<a href="../fr/mod/mod_proxy.html" title="Fran<61>ais">&nbsp;fr&nbsp;</a> |
<a href="../ja/mod/mod_proxy.html" hreflang="ja" rel="alternate" title="Japanese">&nbsp;ja&nbsp;</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">&lt;Proxy&gt;</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">&lt;ProxyMatch&gt;</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__&amp;list_id=144532&amp;product=Apache%20httpd-2&amp;query_format=specific&amp;order=changeddate%20DESC%2Cpriority%2Cbug_severity&amp;component=mod_proxy">Probl<62>mes connus</a></li><li><a href="https://bz.apache.org/bugzilla/enter_bug.cgi?product=Apache%20httpd-2&amp;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
&lt;Proxy *&gt;
Require host internal.example.com
&lt;/Proxy&gt;</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">&lt;FilesMatch "\.php$"&gt;
SetHandler "proxy:unix:/path/to/app.sock|fcgi://localhost/"
&lt;/FilesMatch&gt;</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 n'utilisent ni les jeux de connexions (connection
pooling), ni 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. 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">&lt;Proxy http://backend.example.com&gt;
ProxySet connectiontimeout=5 timeout=30
&lt;/Proxy&gt;</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>
<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 le pooling de
connexions est utilis<69>, chaque domaine d'arri<72>re-plan n'est r<>solu qu'une
seule fois pour chaque processus enfant, et cette r<>solution est r<>utilis<69>e
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">&lt;Proxy&gt;</a></code> comme dans
l'exemple suivant :</p>
<pre class="prettyprint lang-config">&lt;Proxy *&gt;
Require ip 192.168.0
&lt;/Proxy&gt;</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">&lt;Location "/buggyappserver/"&gt;
ProxyPass "http://buggyappserver:7001/foo/"
SetEnv force-proxy-request-1.0 1
SetEnv proxy-nokeepalive 1
&lt;/Location&gt;</pre>
</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>&lt;Proxy <var>balancer://</var>...&gt;</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 (valeur par d<>faut) et 100, 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>&lt;Proxy
<var>balancer://</var>...&gt;</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>&lt;Proxy
<var>balancer://</var>...&gt;</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">&lt;Proxy&gt;</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>&lt;Proxy <var>url-avec-jokers</var>&gt; ...&lt;/Proxy&gt;</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">&lt;Proxy&gt;</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">&lt;Proxy *&gt;
Require host votre-reseau.example.com
&lt;/Proxy&gt;</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">&lt;Proxy http://example.com/foo/*&gt;
SetOutputFilter INCLUDES
&lt;/Proxy&gt;</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">&lt;Proxy www.example.com:443&gt;
Require ip 192.168.0.0/16
&lt;/Proxy&gt;</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, &lt;Proxy
http://example.com/foo&gt; 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">&lt;Location&gt;</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">&lt;ProxyMatch&gt;</code>.</p>
</div>
<h3>Voir aussi</h3>
<ul>
<li><code class="directive"><a href="#proxymatch">&lt;ProxyMatch&gt;</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">&lt;ProxyMatch&gt;</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>&lt;ProxyMatch <var>regex</var>&gt; ...&lt;/ProxyMatch&gt;</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">&lt;ProxyMatch&gt;</code> est
identique <20> la directive <code class="directive"><a href="#proxy">&lt;Proxy&gt;</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">&lt;ProxyMatch ^http://(?&lt;sitename&gt;[^/]+)&gt;
require ldap-group cn=%{env:MATCH_SITENAME},ou=combined,o=Example
&lt;/ProxyMatch&gt;</pre>
<h3>Voir aussi</h3>
<ul>
<li><code class="directive"><a href="#proxy">&lt;Proxy&gt;</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"><strong>Note : </strong>Cette directive ne peut pas <20>tre
utilis<69>e dans un contexte de niveau r<>pertoire.</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">&lt;Location&gt;</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">&lt;Location&gt;</a></code>. Il en sera de m<>me dans une
section <code class="directive"><a href="../mod/core.html#locationmatch">&lt;LocationMatch&gt;</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">&lt;Location "/mirror/foo/"&gt;
ProxyPass "http://backend.example.com/"
&lt;/Location&gt;</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>La directive ProxyPass ne peut pas <20>tre plac<61>e dans une section
<code class="directive"><a href="../mod/core.html#directory">&lt;Directory&gt;</a></code> ou
<code class="directive"><a href="../mod/core.html#files">&lt;Files&gt;</a></code>.</p>
<p>Si vous avez besoin d'un configuration de mandataire inverse plus
souple, reportez-vous <20> la documentaion 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">&lt;Location "/mirror/foo/"&gt;
ProxyPass "http://backend.example.com/"
&lt;/Location&gt;
&lt;Location "/mirror/foo/i"&gt;
ProxyPass "!"
&lt;/Location&gt;</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.</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>
<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 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>
<p>Le groupement de connexions est maintenu au niveau de chaque
processus enfant du serveur web, et <code>max</code>, ainsi que les
autres param<61>tres, ne font
l'objet d'aucune coordination entre les diff<66>rents processus
enfants, sauf si un seul processus enfant est autoris<69> par la
configuration ou la conception du module multi-processus (MPM).</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 de 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.
</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). 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 AJP.
</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'.
</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.</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.
</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.
</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.
</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.
</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>
</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.
</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>&lt;auto&gt;</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
&lt;Proxy balancer://mycluster&gt;
BalancerMember ajp://1.2.3.4:8009
BalancerMember ajp://1.2.3.5:8009 loadfactor=20
# Less powerful server, don't send as many requests there,
BalancerMember ajp://1.2.3.6:8009 loadfactor=5
&lt;/Proxy&gt;</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/ "
&lt;Proxy balancer://hotcluster&gt;
BalancerMember ajp://1.2.3.4:8009 loadfactor=1
BalancerMember ajp://1.2.3.5:8009 loadfactor=2
# The server below is on hot standby
BalancerMember ajp://1.2.3.6:8009 status=+H
ProxySet lbmethod=bytraffic
&lt;/Proxy&gt;</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">&lt;LocationMatch&gt;</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">&lt;LocationMatch&gt;</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">&lt;Location&gt;</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">&lt;Location&gt;</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">&lt;LocationMatch&gt;</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">&lt;Location&gt;</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">&lt;Directory&gt;</a></code> ou
<code class="directive"><a href="../mod/core.html#files">&lt;Files&gt;</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>&lt;Proxy <var>url de r<>partiteur|url de
serveur cible</var>&gt;</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">&lt;Proxy balancer://hotcluster&gt;
BalancerMember http://www2.example.com:8080 loadfactor=1
BalancerMember http://www3.example.com:8080 loadfactor=2
ProxySet lbmethod=bytraffic
&lt;/Proxy&gt;</pre>
</div>
<pre class="prettyprint lang-config">&lt;Proxy http://backend&gt;
ProxySet keepalive=On
&lt;/Proxy&gt;</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>secondes</var></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">&nbsp;en&nbsp;</a> |
<a href="../fr/mod/mod_proxy.html" title="Fran<61>ais">&nbsp;fr&nbsp;</a> |
<a href="../ja/mod/mod_proxy.html" hreflang="ja" rel="alternate" title="Japanese">&nbsp;ja&nbsp;</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&amp;A section. Comments placed here should be pointed towards suggestions on improving the documentation or server, and may be removed again by our moderators if they are either implemented or considered invalid/off-topic. Questions on how to manage the Apache HTTP Server should be directed at either our IRC channel, #httpd, on Freenode, or sent to our <a href="http://httpd.apache.org/lists.html">mailing lists</a>.</div>
<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 2016 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>