You are viewing a plain text version of this content. The canonical link for it is here.
Posted to cvs@httpd.apache.org by rb...@apache.org on 2015/04/15 18:36:07 UTC
svn commit: r1673857 [18/23] - in /httpd/httpd/branches/2.2.x/docs/manual:
./ howto/ misc/ mod/ programs/ vhosts/
Modified: httpd/httpd/branches/2.2.x/docs/manual/mod/mod_proxy.html.fr
URL: http://svn.apache.org/viewvc/httpd/httpd/branches/2.2.x/docs/manual/mod/mod_proxy.html.fr?rev=1673857&r1=1673856&r2=1673857&view=diff
==============================================================================
--- httpd/httpd/branches/2.2.x/docs/manual/mod/mod_proxy.html.fr (original)
+++ httpd/httpd/branches/2.2.x/docs/manual/mod/mod_proxy.html.fr Wed Apr 15 16:36:04 2015
@@ -124,924 +124,568 @@
<li><code class="module"><a href="../mod/mod_ssl.html">mod_ssl</a></code></li>
</ul><ul class="seealso"><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>Apache peut être configuré dans les deux modes mandataire
- <dfn>direct</dfn> et mandataire <dfn>inverse</dfn> (aussi nommé
- mode <dfn>passerelle</dfn>).</p>
-
- <p>Un <dfn>mandataire direct</dfn> standard est un serveur
- intermédiaire qui s'intercale entre le client et le <em>serveur
- demandé</em>. Pour obtenir un contenu hébergé par
- le serveur demandé, le client envoie une requête au
- mandataire en nommant le serveur demandé comme
- cible, puis le mandataire extrait le contenu depuis le
- serveur demandé et le renvoie enfin au client. Le client doit être
- configuré de manière appropriée pour pouvoir utiliser le mandataire
- direct afin d'accéder à d'autres sites.</p>
+<div class="directive-section"><h2><a name="allowconnect" id="allowconnect">Directive</a> <a name="AllowCONNECT" id="AllowCONNECT">AllowCONNECT</a></h2>
+<table class="directive">
+<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Ports autorisés à se <code>CONNECT</code>er à travers le
+mandataire</td></tr>
+<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>AllowCONNECT <var>port</var> [<var>port</var>] ...</code></td></tr>
+<tr><th><a href="directive-dict.html#Default">Défaut:</a></th><td><code>AllowCONNECT 443 563</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">AllowCONNECT</code> permet de
+ spécifier une liste de numéros de ports auxquels la méthode de
+ mandataire <code>CONNECT</code> pourra se connecter. Les navigateurs
+ d'aujourd'hui utilisent cette méthode dans le cas où une connexion
+ <code>https</code> est requise et où le tunneling mandataire sur
+ HTTP est en service.</p>
- <p>L'accès à Internet depuis des clients situés derriè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>Par défaut, seuls les ports par défauts https (<code>443</code>)
+ et snews (<code>563</code>) sont pris en compte. Vous pouvez
+ utiliser la directive <code class="directive">AllowCONNECT</code> pour
+ outrepasser ces valeurs par défaut et n'autoriser les connexions que
+ vers les ports spécifiés.</p>
- <p>La fonctionnalité de mandataire direct est activée via la
- directive <code class="directive"><a href="#proxyrequests">ProxyRequests</a></code>.
- Comme les mandataires directs permettent aux clients d'accéder à
- 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çon à ce que seuls
- les clients autorisés puissent accéder à votre serveur avant
- d'activer la fonctionnalité de mandataire direct.</p>
+ <p>Notez que le module <code class="module"><a href="../mod/mod_proxy_connect.html">mod_proxy_connect</a></code> doit être
+ chargé dans le serveur pour pouvoir accéder au support de
+ <code>CONNECT</code>.</p>
- <p>Un <dfn>mandataire inverse</dfn> (ou <dfn>passerelle</dfn>),
- quant à lui, apparaît au client comme un serveur web standard.
- Aucune configuration particuliè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êtes, et renvoie le contenu au client comme s'il
- l'hébergeait lui-même.</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 à 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é=valeur [clé=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>
+<tr><th><a href="directive-dict.html#Compatibility">Compatibilité:</a></th><td>Disponible depuis la version 2.2 d'Apache.</td></tr>
+</table>
+ <p>Cette directive parmet d'ajouter un membre à un groupe de
+ répartition de charge. Elle peut se trouver dans un conteneur
+ <code><Proxy <var>balancer://</var>...></code>, et accepte
+ tous les paramètres de paires clé/valeur que supporte la directive
+ <code class="directive"><a href="#proxypass">ProxyPass</a></code>.</p>
+ <p>L'argument balancerurl n'est requis que s'il ne se trouve pas
+ dèjà dans la directive de conteneur <code><Proxy
+ <var>balancer://</var>...></code>. Il correspond à l'URL d'un
+ répartiteur de charge défini par une directive <code class="directive"><a href="#proxypass">ProxyPass</a></code>.</p>
- <p>L'accès des utilisateurs à Internet pour un serveur situé
- derriè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ère-plan, ou fournir un cache pour un serveur
- d'arrière-plan plus lent. Les mandataires inverses peuvent aussi
- tout simplement servir à rassembler plusieurs serveurs dans le
- même espace de nommage d'URLs.</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é que pour les serveurs mandataires
+ Apache au sein d'Intranets. La directive
+ <code class="directive">NoProxy</code> permet de spécifier une liste de
+ sous-réseaux, d'adresses IP, de serveurs et/ou de domaines séparés
+ par des espaces. Une requête pour un serveur qui correspond à un ou
+ plusieurs critères sera toujours servie par ce serveur directement,
+ sans être redirigée vers le(s) serveur(s) mandataire(s) défini(s) par
+ la directive <code class="directive"><a href="#proxyremote">ProxyRemote</a></code>.</p>
- <p>La fonctionnalité de mandataire inverse est activé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> à on 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>
+ <div class="example"><h3>Exemple</h3><p><code>
+ ProxyRemote * http://pare-feu.example.com:81<br />
+ NoProxy .example.com 192.168.112.0/21
+ </code></p></div>
- <p>Les exemples ci-dessous illustrent de manière très basique la
- mise en oeuvre de la fonctionnalité de mandataire et ne sont là que
- pour vous aider à démarrer. Reportez-vous à la documentation de
- chaque directive.</p>
+ <p>Le type des arguments <var>serveur</var> de la directive
+ <code class="directive">NoProxy</code> appartiennent à la liste suivante
+ :</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>
+ <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é précédé d'un point. Il représente une liste de serveurs qui
+ appartiennent logiquement au même domaine ou à 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>Mandataire inverse</h3><p><code>
- ProxyPass /foo http://foo.example.com/bar<br />
- ProxyPassReverse /foo http://foo.example.com/bar
+ <div class="example"><h3>Exemple</h3><p><code>
+ .com .apache.org.
</code></p></div>
- <div class="example"><h3>Mandataire direct</h3><p><code>
- ProxyRequests On<br />
- ProxyVia On<br />
- <br />
- <Proxy *><br />
- <span class="indent">
- Order deny,allow<br />
- Deny from all<br />
- Allow from interne.example.com<br />
- </span>
- </Proxy>
- </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 à 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écifiés en les
+ préfixant par un point.</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">Gestionnaires de serveurs (workers)</a></h2>
- <p>Le mandataire gère la configuration des serveurs originaux,
- ainsi que leurs paramètres de communication dans des objets
- appelés <dfn>workers</dfn> ou Gestionnaires de serveur. Deux
- workers intégrés par défaut sont disponibles : le worker de
- mandataire direct et le worker de mandataire inverse. Des workers
- supplémentaires peuvent être configurés explicitement.</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ées correspondre à la racine de l'arborescence
+ DNS, si bien que les domaines <code>.ExEmple.com</code> et
+ <code>.example.com.</code> (notez le point à la fin du nom) sont
+ considéré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>
- <p>Les deux workers par défaut ont une configuration fixe et
- seront utilisés si aucun autre worker ne correspond à la requête.
- Ils n'utilisent ni les connexions HTTP persistantes, ni les jeux
- de connexions. Les connexions TCP vers le serveur original seront
- donc ouvertes et fermées pour chaque requête.</p>
+
+ <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ée sous forme numérique (quatre nombres séparés par des
+ points), optionnellement suivie d'un slash et du masque de
+ sous-réseau spécifiant le nombre de bits significatifs dans le
+ <var>Sous-réseau</var>. Il représente un sous-réseau de serveurs qui
+ peuvent ê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ères 0) de fin spécifient le masque de
+ sous-réseau (Dans ce cas, le masque de sous-réseau ne peut être
+ qu'un multiple de 8). Voici quelques exemples :</p>
- <p>Les workers configurés explicitement sont identifiés par leur
- URL. Dans le cas d'un mandataire inverse, ils sont généralement
- créés et configurés via les directives <code class="directive"><a href="#proxypass">ProxyPass</a></code> ou <code class="directive"><a href="#proxypassmatch">ProxyPassMatch</a></code> :</p>
+ <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é 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é
+ sous la forme<code>255.255.248.0</code>)</dd>
+ </dl>
- <div class="example"><p><code>
- ProxyPass /example http://backend.example.com connectiontimeout=5 timeout=30
- </code></p></div>
+ <p>Comme cas extrèmes, un <em>Sous-réseau</em> avec un masque de
+ sous-réseau de 32 bits significatifs est équivalent à une <var><a href="#ipaddr">adresse IP</a></var>, alors qu'un <em>Sous-réseau</em> avec un masque de
+ sous-réseau de 0 bit significatif (c'est à dire 0.0.0.0/0) est
+ identique à la constante <var>_Default_</var>, et peut correspondre
+ à toute adresse IP.</p></dd>
- <p>Cet exemple crée un worker associé à l'URL du serveur original
- <code>http://backend.example.com</code>, et utilisant les délais
- spécifiés. Dans le cas d'un mandataire direct, les workers sont
- généralement définis via la directive <code class="directive"><a href="#proxyset">ProxySet</a></code> directive :</p>
+
+ <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ée sous forme numérique (quatre nombres séparés par des
+ points). En général, cette adresse représente un serveur, mais elle
+ ne doit pas nécessairement correspondre à un nom de domaine DNS.</p>
+ <div class="example"><h3>Exemple</h3><p><code>
+ 192.168.123.7
+ </code></p></div>
- <div class="example"><p><code>
- ProxySet http://backend.example.com connectiontimeout=5 timeout=30
- </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érer plus efficace quant aux performances
+ d'Apache.</p>
+ </div></dd>
- <p>ou encore via une combinaison des directives <code class="directive"><a href="#proxy">Proxy</a></code> et <code class="directive"><a href="#proxyset">ProxySet</a></code> :</p>
+
+ <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é qui peut être résolu en une ou plusieurs adresses IP par le
+ service de noms de domaines DNS. Il représente un hôte logique (par
+ opposition aux <var><a href="#domain">Domaine</a></var>s, voir
+ ci-dessus), et doit pouvoir être résolu en une ou plusieurs <var><a href="#ipaddr">adresses IP</a></var> (ou souvent en une liste
+ d'hôtes avec différentes <var><a href="#ipaddr">adresses
+ IP</a></var>).</p>
- <div class="example"><p><code>
- <Proxy http://backend.example.com><br />
- <span class="indent">
- ProxySet connectiontimeout=5 timeout=30
- </span>
- </Proxy>
- </code></p></div>
+ <div class="example"><h3>Exemples</h3><p><code>
+ prep.ai.example.com<br />
+ www.apache.org
+ </code></p></div>
- <p>L'utilisation de workers configurés explicitement dans le mode
- direct n'est pas très courante, car les mandataires directs
- communiquent avec de nombreux serveurs originaux. Il est cependant
- intéressant de créer des workers explicites pour certains serveurs
- originaux si ces derniers sont utilisés très souvent. Les workers
- configurés explicitement n'ont en eux-mêmes aucun concept de
- mandataire direct ou inverse. Ils encapsulent un concept de
- communication commun avec les serveurs originaux. Un worker créé
- via la directive <code class="directive"><a href="#proxypass">ProxyPass</a></code> pour être utilisé avec un
- mandataire inverse, sera aussi utilisé pour les requêtes mandatées
- en direct chaque fois que l'URL du serveur original correspondra à
- l'URL du worker, et vice versa.</p>
+ <div class="note"><h3>Note</h3>
+ <p>Dans de nombreuses situations, il est plus efficace de
+ spécifier une <var><a href="#ipaddr">adresse IP</a></var> qu'un
+ <var>Nom de serveur</var> car cela évite d'avoir à effectuer une
+ recherche DNS. La résolution de nom dans Apache peut prendre un
+ temps trè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ées correspondre à 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 à la fin du nom) sont
+ considérés comme identiques.</p>
+ </div></dd>
+ </dl>
- <p>L'URL identifiant un worker direct correspond à l'URL de son
- serveur original comportant tout élément de chemin éventuel :</p>
+<h3>Voir aussi</h3>
+<ul>
+<li><a href="../dns-caveats.html">Problèmes liés au DNS</a></li>
+</ul>
+</div>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="directive-section"><h2><a name="proxy" id="proxy">Directive</a> <a name="Proxy" id="Proxy"><Proxy></a></h2>
+<table class="directive">
+<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Conteneur de directives s'appliquant à des ressources
+mandatées</td></tr>
+<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code><Proxy <var>url-avec-jokers</var>> ...</Proxy></code></td></tr>
+<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur, serveur virtuel</td></tr>
+<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
+<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_proxy</td></tr>
+</table>
+ <p>Les directives situées dans une section <code class="directive"><Proxy></code> ne s'appliquent qu'au contenu
+ mandaté concerné. Les jokers de style shell sont autorisés.</p>
- <div class="example"><p><code>
- ProxyPass /examples http://backend.example.com/examples<br />
- ProxyPass /docs http://backend.example.com/docs
- </code></p></div>
+ <p>Par exemple, les lignes suivantes n'autoriseront à accéder à un
+ contenu via votre serveur mandataire que les hôtes appartenant à
+ <code>votre-reseau.example.com</code> :</p>
- <p>Cet exemple définit deux workers différents, chacun d'entre eux
- utilisant une configuration et un jeu de connexions séparés.</p>
+ <div class="example"><p><code>
+ <Proxy *><br />
+ <span class="indent">
+ Order Deny,Allow<br />
+ Deny from all<br />
+ Allow from votre-reseau.example.com<br />
+ </span>
+ </Proxy>
+ </code></p></div>
- <div class="warning"><h3>Partage de worker</h3>
- <p>Le partage de worker se produit lorsque les URLs des workers
- se chevauchent, c'est à dire lorsque l'URL d'un worker
- correspond à une partie du début de l'URL d'un autre worker
- défini plus loin dans le fichier de configuration. Dans
- l'exemple suivant,</p>
+ <p>Dans l'exemple suivant, tous les fichiers du répertoire
+ <code>foo</code> de <code>example.com</code> seront traités par le
+ filtre <code>INCLUDES</code> lorsqu'ils seront envoyés par
+ l'intermédiaire du serveur mandataire :</p>
- <div class="example"><p><code>
- ProxyPass /apps http://backend.example.com/ timeout=60<br />
- ProxyPass /examples http://backend.example.com/examples timeout=10
- </code></p></div>
+ <div class="example"><p><code>
+ <Proxy http://example.com/foo/*><br />
+ <span class="indent">
+ SetOutputFilter INCLUDES<br />
+ </span>
+ </Proxy>
+ </code></p></div>
- <p>le second worker n'est pas vraiment créé. C'est le premier
- worker qui est utilisé à sa place. L'avantage de ceci réside
- dans le fait qu'il n'y a plus qu'un jeu de connexions, celles-ci
- étant donc réutilisées plus souvent. Notez que tous les
- attributs de configuration définis explicitement pour le second
- worker et certaines valeurs par défaut vont écraser la
- configuration définie pour le premier worker, ce qui va
- provoquer la journalisation d'un avertissement. Dans l'exemple
- précédent, la valeur de délai finale pour l'URL
- <code>/apps</code> sera <code>10</code> au lieu de <code>60</code> !</p>
+ <div class="note"><h3>Différences avec la section de configuration Location</h3>
+ <p>Une URL d'arrière-plan sera concerné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'à un
+ préfixe de segment dee chemin de l'URL d'arrière-plan. Par exemple, <Proxy
+ http://example.com/foo> correspondra entre autres aux URLs
+ http://example.com/foo, http://example.com/foo/bar, et
+ http://example.com/foobar. La correspondance de l'URL finale
+ diffère du comportement de la section <code class="directive"><a href="../mod/core.html#location"><Location></a></code> qui, pour le cas de cette note,
+ traitera le segment de chemin final comme s'il se terminait par un
+ slash.</p>
+ <p>Pour un contrôle plus fin de la correspondance des URL, voir la
+ directive <code class="directive"><ProxyMatch></code>.</p>
+ </div>
- <p>Pour éviter ce partage, classez vos définitions de workers de
- l'URL la plus longue à la plus courte. Si au contraire, vous
- voulez favoriser ce partage, utilisez l'ordre de classement
- inverse. Voir aussi l'avertissement en rapport à propos de
- l'ordre de classement des directives <code class="directive"><a href="#proxypass">ProxyPass</a></code>.</p>
- </div>
+<h3>Voir aussi</h3>
+<ul>
+<li><code class="directive"><a href="#proxymatch"><ProxyMatch></a></code></li>
+</ul>
+</div>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="directive-section"><h2><a name="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è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>
+<tr><th><a href="directive-dict.html#Compatibility">Compatibilité:</a></th><td>Disponible depuis la version 2.0.44 d'Apache</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çoit des lignes d'en-tête de réponse dont la syntaxe n'est pas valide (c'est
+ à dire ne contenant pas de caractère ':') en provenance du serveur
+ original. Les arguments disponibles sont :</p>
- <p>Les workers configurés explicitement sont de deux sortes :
- <dfn>workers directs</dfn> et <dfn>workers à répartition (de
- charge)</dfn>. Ils supportent de nombreux attributs de
- configuration importants décrits ci-dessous dans la directive
- <code class="directive"><a href="#proxypass">ProxyPass</a></code>. Tous ces
- attributs peuvent aussi être définis via la directive <code class="directive"><a href="#proxyset">ProxySet</a></code>.</p>
+ <dl>
+ <dt><code>IsError</code></dt>
+ <dd>Annule la requête et renvoie une réponse de code 502 (mauvaise
+ passerelle). C'est le comportement par défaut.</dd>
- <p>Le jeu d'options disponibles pour un worker direct dépend du
- protocole, qui est spécifié dans l'URL du serveur original. Parmi
- les protocoles disponibles, on trouve <code>ajp</code>,
- <code>ftp</code>, <code>http</code> et <code>scgi</code>.</p>
+ <dt><code>Ignore</code></dt>
+ <dd>Traite les lignes d'en-tête incorrectes comme si elles n'avaient
+ pas été envoyées.</dd>
- <p>Les workers à répartition sont des workers virtuels qui
- utilisent des workers directs considérés comme leurs membres pour
- le traitement effectif des requêtes. Chaque répartiteur peut
- posséder plusieurs membres. Pour traiter une requête, il choisit
- un de ses membres en fonction de l'algorithme de répartition de
- charge défini.</p>
+ <dt><code>StartBody</code></dt>
+ <dd>A la réception de la première ligne d'en-tête incorrecte, les
+ autres en-têtes sont lus et ce qui reste est traité en tant que
+ corps. Ceci facilite la prise en compte des serveurs d'arrière-plan
+ bogués qui oublient d'insérer une ligne vide entre les
+ en-têtes et le corps.</dd>
+ </dl>
- <p>Un worker à répartition est créé si son URL utilise
- <code>balancer</code> comme protocole. L'URL de répartition
- identifie de manière unique le worker à répartition. On peut
- ajouter des membres à un répartiteur via la directive <code class="directive"><a href="#balancermember">BalancerMember</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="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>Termes, serveurs ou domaines bloqués par le
+mandataire</td></tr>
+<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>ProxyBlock *|<var>terme</var>|<var>serveur</var>|<var>domaine</var>
+[<var>terme</var>|<var>serveur</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>La directive <code class="directive">ProxyBlock</code> permet de
+ spécifier une liste de termes, serveurs et/ou domaines, séparés par
+ des espaces. Les requêtes de documents HTTP, HTTPS, FTP vers des
+ sites dont les noms contiennent des termes, noms de serveur ou
+ domaine correspondants seront <em>bloqués</em> par le serveur
+ mandataire. La module proxy va aussi tenter de déterminer les
+ adresses IP des items de la liste qui peuvent correspondre à des
+ noms d'hôtes au cours du démarrage, et les mettra en cache à des
+ fins de comparaisons ultérieures. Ceci peut ralentir le démarrage du
+ serveur.</p>
- </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ôler l'accès à votre
- mandataire</a></h2>
- <p>Vous pouvez restreindre l'accès à votre mandataire via le bloc
- de contrôle <code class="directive"><a href="#proxy"><Proxy></a></code> comme dans
- l'exemple suivant :</p>
+ <div class="example"><h3>Exemple</h3><p><code>
+ ProxyBlock joes-garage.com some-host.co.uk rocky.wotsamattau.edu
+ </code></p></div>
- <div class="example"><p><code>
- <Proxy *><br />
- <span class="indent">
- Order Deny,Allow<br />
- Deny from all<br />
- Allow from 192.168.0<br />
- </span>
- </Proxy>
- </code></p></div>
+ <p><code>rocky.wotsamattau.edu</code> aurait aussi correspondu s'il
+ avait été spécifié par son adresse IP.</p>
- <p>Pour plus de détails sur les directives de contrôle d'accès,
- voir la documentation du module
- <code class="module"><a href="../mod/mod_authz_host.html">mod_authz_host</a></code>.</p>
+ <p>Notez que <code>wotsamattau</code> aurait suffi pour correspondre
+ à <code>wotsamattau.edu</code>.</p>
- <p>Restreindre l'accès de maniè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> à "on").
- Dans le cas contraire, votre serveur pourrait être utilisé par
- n'importe quel client pour accéder à des serveurs quelconques,
- tout en masquant sa véritable identité. Ceci repré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ôle
- d'accès est moins critique car les clients ne peuvent contacter
- que les serveurs que vous avez spécifiés.</p>
+ <p>Notez aussi que</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émarragep</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ères mises en cache au cours du démarrage
- à des fins de tests de comparaisons ultérieurs. Ce processus peut
- durer plusieurs secondes (ou d'avantage) en fonction de la vitesse
- à 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 d'Intranet</a></h2>
- <p>Un serveur mandataire Apache situé à l'intérieur d'un Intranet
- doit faire suivre les requêtes destinées à un serveur externe à
- 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çon à ce qu'elle fasse suivre le <var>protocole</var> concerné
- vers le mandataire du pare-feu). Cependant, lorsqu'il doit accéder
- à des ressources situées dans l'Intranet, il peut se passer du
- pare-feu pour accéder aux serveurs. A cet effet, la directive
- <code class="directive"><a href="#noproxy">NoProxy</a></code> permet de
- spécifier quels hôtes appartiennent à l'Intranet et peuvent donc
- être accédés directement.</p>
-
- <p>Les utilisateurs d'un Intranet ont tendance à oublier le nom du
- domaine local dans leurs requê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ê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ée et si le
- serveur est <a href="#proxyrequests">configuré comme
- mandataire</a>, Apache peut renvoyer une réponse de redirection et
- ainsi fournir au client l'adresse de serveur correcte,
- entièrement qualifiée. C'est la méthode à privilégier car le
- fichier des marque-pages de l'utilisateur contiendra alors des
- noms de serveurs entièrement qualifié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êtes
- vers un serveur qui n'implémente pas correctement les connexions
- persistantes ou le protocole HTTP/1.1, il existe deux variables
- d'environnement qui permettent de forcer les requêtes à utiliser
- le protocole HTTP/1.0 avec connexions non persistantes. Elles
- peuvent ê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>
-
- <div class="example"><p><code>
- <Location /serveur-non-conforme/><br />
- <span class="indent">
- ProxyPass http://serveur-non-conforme:7001/foo/<br />
- SetEnv force-proxy-request-1.0 1<br />
- SetEnv proxy-nokeepalive 1<br />
- </span>
- </Location>
- </code></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="request-bodies" id="request-bodies">Corps de requêtes</a></h2>
+ <div class="example"><p><code>
+ ProxyBlock *
+ </code></p></div>
- <p>Certaines méthodes de requêtes comme POST comportent un corps de
- requête. Le protocole HTTP stipule que les requêtes qui comportent
- un corps doivent soit utiliser un codage de transmission
- fractionnée, soit envoyer un en-tête de requête
- <code>Content-Length</code>. Lorsqu'il fait suivre ce genre de
- requête vers le serveur demandé, <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ête
- originale utilise un codage à fractionnement, ce dernier peut aussi
- être utilisé dans la requête montante. Ce comportement peut être
- contrôlé à 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é maximale avec les
- serveurs demandé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 à fractionnement.</p>
+ <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="section">
-<h2><a name="x-headers" id="x-headers">En-têtes de requête du mandataire
- inverse</a></h2>
+</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êtes
+mandaté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é que pour les serveurs mandataires
+ Apache au sein d'un Intranet. La directive
+ <code class="directive">ProxyDomain</code> permet de spécifier le domaine
+ par défaut auquel le serveur mandataire apache appartient. Si le
+ serveur reçoit une requête pour un hôte sans nom de domaine, il va
+ générer une réponse de redirection vers le même hôte suffixé par le
+ <var>Domaine</var> spécifié.</p>
- <p>Lorsqu'il est configuré 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ête
- afin de transmettre des informations au serveur demandé. Ces
- en-têtes sont les suivants :</p>
+ <div class="example"><h3>Exemple</h3><p><code>
+ ProxyRemote * http://firewall.example.com:81<br />
+ NoProxy .example.com 192.168.112.0/21<br />
+ ProxyDomain .example.com
+ </code></p></div>
- <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é par le client dans l'en-tête de
- requête HTTP <code>Host</code>.</dd>
- <dt><code>X-Forwarded-Server</code></dt>
- <dd>Le nom d'hôte du serveur mandataire.</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="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é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</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é:</a></th><td>Disponible depuis la version 2.0 d'Apache</td></tr>
+</table>
+ <p>Cette directive est utile pour les configurations de mandataires
+ inverses, lorsque vous souhaitez que les pages d'erreur envoyées
+ aux utilisateurs finaux présentent un aspect homogè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équence (le comportement par défaut afficherait la page
+ d'erreur du serveur mandaté, alors que c'est le message d'erreur SSI
+ qui sera affiché si cette directive est à "on").</p>
- <p>Ces en-têtes doivent être utilisés avec précautions sur le
- serveur demandé, car ils contiendront plus d'une valeur (séparées
- par des virgules) si la requête original contenait déjà un de ces
- en-têtes. Par exemple, vous pouvez utiliser
- <code>%{X-Forwarded-For}i</code> dans la chaîne de format du journal
- du serveur demandé pour enregistrer les adresses IP des clients
- originaux, mais il est possible que vous obteniez plusieurs adresses
- si la requête passe à travers plusieurs mandataires.</p>
+ <p>Cette directive n'affecte pas le traitement des réponses
+ informatives (1xx), de type succès normal (2xx), ou de redirection
+ (3xx).</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ôler d'autres en-têtes de requê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="proxyftpdircharset" id="proxyftpdircharset">Directive</a> <a name="ProxyFtpDirCharset" id="ProxyFtpDirCharset">ProxyFtpDirCharset</a></h2>
+<table class="directive">
+<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Définit le jeu de caractères des listings FTP
+mandatés</td></tr>
+<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>ProxyFtpDirCharset <var>jeu-caractères</var></code></td></tr>
+<tr><th><a href="directive-dict.html#Default">Défaut:</a></th><td><code>ProxyFtpDirCharset ISO-8859-1</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é:</a></th><td>Disponible depuis la version 2.2.7 d'Apache</td></tr>
+</table>
+ <p>La directive <code class="directive">ProxyFtpDirCharset</code> permet de
+ définir le jeu de caractères à utiliser pour les listings FTP en
+ HTML générés par <code class="module"><a href="../mod/mod_proxy_ftp.html">mod_proxy_ftp</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="allowconnect" id="allowconnect">Directive</a> <a name="AllowCONNECT" id="AllowCONNECT">AllowCONNECT</a></h2>
+<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>Ports autorisés à se <code>CONNECT</code>er à travers le
-mandataire</td></tr>
-<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>AllowCONNECT <var>port</var> [<var>port</var>] ...</code></td></tr>
-<tr><th><a href="directive-dict.html#Default">Défaut:</a></th><td><code>AllowCONNECT 443 563</code></td></tr>
+<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Détermine la taille du tampon interne de transfert de
+donné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">AllowCONNECT</code> permet de
- spécifier une liste de numéros de ports auxquels la méthode de
- mandataire <code>CONNECT</code> pourra se connecter. Les navigateurs
- d'aujourd'hui utilisent cette méthode dans le cas où une connexion
- <code>https</code> est requise et où le tunneling mandataire sur
- HTTP est en service.</p>
+ <p>La directive <code class="directive">ProxyIOBufferSize</code> permet
+ d'ajuster la taille du tampon interne utilisé comme bloc-note pour
+ les transferts de données entre entrée et sortie. La taille doit
+ être au minimum égale à <code>8192</code> octets.</p>
- <p>Par défaut, seuls les ports par défauts https (<code>443</code>)
- et snews (<code>563</code>) sont pris en compte. Vous pouvez
- utiliser la directive <code class="directive">AllowCONNECT</code> pour
- outrepasser ces valeurs par défaut et n'autoriser les connexions que
- vers les ports spécifiés.</p>
+ <p>Lorsqu'on utilise <code class="module"><a href="../mod/mod_proxy_ajp.html">mod_proxy_ajp</a></code>, la valeur
+ minimale est alignée sur la limite de 1024 octets, et les valeurs
+ supérieures à 65536 octets sont ramenées à 65536 octets, comme préconisé
+ par le protocole AJP.</p>
+
+ <p>Dans la plupart des cas, il n'y a aucune raison de modifier cette
+ valeur.</p>
- <p>Notez que le module <code class="module"><a href="../mod/mod_proxy_connect.html">mod_proxy_connect</a></code> doit être
- chargé dans le serveur pour pouvoir accéder au support de
- <code>CONNECT</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>
+<div class="directive-section"><h2><a name="proxymatch" id="proxymatch">Directive</a> <a name="ProxyMatch" id="ProxyMatch"><ProxyMatch></a></h2>
<table class="directive">
-<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Ajoute un membre à 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é=valeur [clé=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#Description">Description:</a></th><td>Conteneur de directives s'appliquant à des ressources
+mandatées correspondant à une expression rationnelle</td></tr>
+<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code><ProxyMatch <var>regex</var>> ...</ProxyMatch></code></td></tr>
+<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur, serveur virtuel</td></tr>
<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_proxy</td></tr>
-<tr><th><a href="directive-dict.html#Compatibility">Compatibilité:</a></th><td>Disponible depuis la version 2.2 d'Apache.</td></tr>
</table>
- <p>Cette directive parmet d'ajouter un membre à un groupe de
- répartition de charge. Elle peut se trouver dans un conteneur
- <code><Proxy <var>balancer://</var>...></code>, et accepte
- tous les paramètres de paires clé/valeur que supporte la directive
- <code class="directive"><a href="#proxypass">ProxyPass</a></code>.</p>
- <p>L'argument balancerurl n'est requis que s'il ne se trouve pas
- dèjà dans la directive de conteneur <code><Proxy
- <var>balancer://</var>...></code>. Il correspond à 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 directive <code class="directive"><ProxyMatch></code> est
+ identique à la directive <code class="directive"><a href="#proxy"><Proxy></a></code>, à 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>
+<h3>Voir aussi</h3>
+<ul>
+<li><code class="directive"><a href="#proxy"><Proxy></a></code></li>
+</ul>
</div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="directive-section"><h2><a name="noproxy" id="noproxy">Directive</a> <a name="NoProxy" id="NoProxy">NoProxy</a></h2>
+<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>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#Description">Description:</a></th><td>Nombre maximum de mandataires à travers lesquelles une
+requête peut être redirigé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>
+<tr><th><a href="directive-dict.html#Compatibility">Compatibilité:</a></th><td>Disponible depuis Apache 2.0 ; comportement par défaut
+modifié dans 2.2.7</td></tr>
</table>
- <p>Cette directive n'a d'utilité que pour les serveurs mandataires
- Apache au sein d'Intranets. La directive
- <code class="directive">NoProxy</code> permet de spécifier une liste de
- sous-réseaux, d'adresses IP, de serveurs et/ou de domaines séparés
- par des espaces. Une requête pour un serveur qui correspond à un ou
- plusieurs critères sera toujours servie par ce serveur directement,
- sans être redirigée vers le(s) serveur(s) mandataire(s) défini(s) par
- la directive <code class="directive"><a href="#proxyremote">ProxyRemote</a></code>.</p>
+ <p>La directive <code class="directive">ProxyMaxForwards</code> permet de
+ spécifier le nombre maximum de mandataires à travers lesquels une
+ requête peut passer dans le cas où la la requête ne contient pas
+ d'en-tête <code>Max-Forwards</code>. Ceci permet de se prémunir
+ contre les boucles infinies de mandataires ou contre les attaques de
+ type déni de service.</p>
<div class="example"><h3>Exemple</h3><p><code>
- ProxyRemote * http://pare-feu.example.com:81<br />
- NoProxy .example.com 192.168.112.0/21
+ ProxyMaxForwards 15
</code></p></div>
- <p>Le type des arguments <var>serveur</var> de la directive
- <code class="directive">NoProxy</code> appartiennent à 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é précédé d'un point. Il représente une liste de serveurs qui
- appartiennent logiquement au même domaine ou à 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 .apache.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 à 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écifiés en les
- pré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ées correspondre à la racine de l'arborescence
- DNS, si bien que les domaines <code>.ExEmple.com</code> et
- <code>.example.com.</code> (notez le point à la fin du nom) sont
- considéré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ée sous forme numérique (quatre nombres séparés par des
- points), optionnellement suivie d'un slash et du masque de
- sous-réseau spécifiant le nombre de bits significatifs dans le
- <var>Sous-réseau</var>. Il représente un sous-réseau de serveurs qui
- peuvent ê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ères 0) de fin spécifient le masque de
- sous-réseau (Dans ce cas, le masque de sous-réseau ne peut ê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é 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é
- sous la forme<code>255.255.248.0</code>)</dd>
- </dl>
-
- <p>Comme cas extrèmes, un <em>Sous-réseau</em> avec un masque de
- sous-réseau de 32 bits significatifs est équivalent à une <var><a href="#ipaddr">adresse IP</a></var>, alors qu'un <em>Sous-réseau</em> avec un masque de
- sous-réseau de 0 bit significatif (c'est à dire 0.0.0.0/0) est
- identique à la constante <var>_Default_</var>, et peut correspondre
- à 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ée sous forme numérique (quatre nombres séparés par des
- points). En général, cette adresse représente un serveur, mais elle
- ne doit pas nécessairement correspondre à 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é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é qui peut être résolu en une ou plusieurs adresses IP par le
- service de noms de domaines DNS. Il représente un hôte logique (par
- opposition aux <var><a href="#domain">Domaine</a></var>s, voir
- ci-dessus), et doit pouvoir être résolu en une ou plusieurs <var><a href="#ipaddr">adresses IP</a></var> (ou souvent en une liste
- d'hôtes avec différentes <var><a href="#ipaddr">adresses
- IP</a></var>).</p>
-
- <div class="example"><h3>Exemples</h3><p><code>
- prep.ai.example.com<br />
- www.apache.org
- </code></p></div>
-
- <div class="note"><h3>Note</h3>
- <p>Dans de nombreuses situations, il est plus efficace de
- spécifier une <var><a href="#ipaddr">adresse IP</a></var> qu'un
- <var>Nom de serveur</var> car cela évite d'avoir à effectuer une
- recherche DNS. La résolution de nom dans Apache peut prendre un
- temps trè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ées correspondre à 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 à la fin du nom) sont
- considérés comme identiques.</p>
- </div></dd>
- </dl>
+ <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 à un mandataire de
+ définir <code>Max-Forwards</code> si le client ne l'a pas fait
+ lui-même. Les versions précédentes d'Apache la définissaient
+ systé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>
-<h3>Voir aussi</h3>
-<ul>
-<li><a href="../dns-caveats.html">Problèmes liés au DNS</a></li>
-</ul>
</div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="directive-section"><h2><a name="proxy" id="proxy">Directive</a> <a name="Proxy" id="Proxy"><Proxy></a></h2>
+<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>Conteneur de directives s'appliquant à des ressources
-mandatées</td></tr>
-<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code><Proxy <var>url-avec-jokers</var>> ...</Proxy></code></td></tr>
-<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur, serveur virtuel</td></tr>
+<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Réfé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é=valeur</var>
+ <var>[clé=valeur</var> ...]] [nocanon] [interpolate]</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>Les directives situées dans une section <code class="directive"><Proxy></code> ne s'appliquent qu'au contenu
- mandaté concerné. Les jokers de style shell sont autorisés.</p>
+ <p>Cette directive permet réfé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ôt comme miroir du serveur distant. Le serveur local est
+ souvent nommé <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îne d'arguments.</p>
- <p>Par exemple, les lignes suivantes n'autoriseront à accéder à un
- contenu via votre serveur mandataire que les hôtes appartenant à
- <code>votre-reseau.example.com</code> :</p>
+ <div class="warning">En général, la directive <code class="directive"><a href="#proxyrequests">ProxyRequests</a></code> doit être définie à
+ <strong>off</strong> lorsqu'on utilise la directive
+ <code class="directive">ProxyPass</code>.</div>
+
+ <p>Supposons que le serveur local a pour adresse
+ <code>http://example.com/</code> ; alors la ligne</p>
<div class="example"><p><code>
- <Proxy *><br />
- <span class="indent">
- Order Deny,Allow<br />
- Deny from all<br />
- Allow from votre-reseau.example.com<br />
- </span>
- </Proxy>
+ ProxyPass /miroir/foo/ http://backend.example.com/
</code></p></div>
- <p>Dans l'exemple suivant, tous les fichiers du répertoire
- <code>foo</code> de <code>example.com</code> seront traités par le
- filtre <code>INCLUDES</code> lorsqu'ils seront envoyés par
- l'intermédiaire du serveur mandataire :</p>
+ <p>va convertir en interne toute requête pour
+ <code>http://example.com/miroir/foo/bar</code> en une requête
+ mandatée pour <code>http://backend.example.com/bar</code>.</p>
+
+ <div class="warning">
+ <p>Si le premier argument se termine par un slash
+ <strong>/</strong>, il doit en ê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ête résultante vers le serveur
+ d'arriè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>
<div class="example"><p><code>
- <Proxy http://example.com/foo/*><br />
- <span class="indent">
- SetOutputFilter INCLUDES<br />
- </span>
- </Proxy>
+ ProxyPass /miroir/foo/i !<br />
+ ProxyPass /miroir/foo http://backend.example.com
</code></p></div>
- <div class="note"><h3>Différences avec la section de configuration Location</h3>
- <p>Une URL d'arrière-plan sera concerné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'à un
- préfixe de segment dee chemin de l'URL d'arrière-plan. Par exemple, <Proxy
- http://example.com/foo> correspondra entre autres aux URLs
- http://example.com/foo, http://example.com/foo/bar, et
- http://example.com/foobar. La correspondance de l'URL finale
- diffère du comportement de la section <code class="directive"><a href="../mod/core.html#location"><Location></a></code> qui, pour le cas de cette note,
- traitera le segment de chemin final comme s'il se terminait par un
- slash.</p>
- <p>Pour un contrôle plus fin de la correspondance des URL, voir la
- directive <code class="directive"><ProxyMatch></code>.</p>
- </div>
+ <p>va mandater toutes les requêtes pour <code>/miroir/foo</code>
+ vers <code>backend.example.com</code>, <em>sauf</em> les requê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 traitées selon
+ leur ordre d'apparition dans le fichier de configuration. La
+ première qui correspond s'applique. Ainsi, vous devez classer les
+ directives <code class="directive"><a href="#proxypass">ProxyPass</a></code> qui
+ peuvent entrer en conflit, de l'URL la plus longue à la plus
+ courte. Dans le cas contraire, les directives dont l'URL
+ constitue une partie du début de l'URL de directives
+ apparaissant plus loin dans la configuration vont occulter ces
+ dernières. Notez que tout ceci est en relation avec le partage de
+ worker.</p>
-<h3>Voir aussi</h3>
-<ul>
-<li><code class="directive"><a href="#proxymatch"><ProxyMatch></a></code></li>
-</ul>
-</div>
-<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="directive-section"><h2><a name="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è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>
-<tr><th><a href="directive-dict.html#Compatibility">Compatibilité:</a></th><td>Disponible depuis la version 2.0.44 d'Apache</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çoit des lignes d'en-tête de réponse dont la syntaxe n'est pas valide (c'est
- à dire ne contenant pas de caractère ':') en provenance du serveur
- original. Les arguments disponibles sont :</p>
+ <p>Pour les mêmes raisons, les exclusions doivent apparaître
+ <em>avant</em> les directives <code class="directive">ProxyPass</code>
+ générales.</p>
- <dl>
- <dt><code>IsError</code></dt>
- <dd>Annule la requête et renvoie une réponse de code 502 (mauvaise
- passerelle). C'est le comportement par défaut.</dd>
+ </div>
- <dt><code>Ignore</code></dt>
- <dd>Traite les lignes d'en-tête incorrectes comme si elles n'avaient
- pas été envoyées.</dd>
-
- <dt><code>StartBody</code></dt>
- <dd>A la réception de la première ligne d'en-tête incorrecte, les
- autres en-têtes sont lus et ce qui reste est traité en tant que
- corps. Ceci facilite la prise en compte des serveurs d'arrière-plan
- bogués qui oublient d'insé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>Termes, serveurs ou domaines bloqués par le
-mandataire</td></tr>
-<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>ProxyBlock *|<var>terme</var>|<var>serveur</var>|<var>domaine</var>
-[<var>terme</var>|<var>serveur</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>La directive <code class="directive">ProxyBlock</code> permet de
- spécifier une liste de termes, serveurs et/ou domaines, séparés par
- des espaces. Les requêtes de documents HTTP, HTTPS, FTP vers des
- sites dont les noms contiennent des termes, noms de serveur ou
- domaine correspondants seront <em>bloqués</em> par le serveur
- mandataire. La module proxy va aussi tenter de déterminer les
- adresses IP des items de la liste qui peuvent correspondre à des
- noms d'hôtes au cours du démarrage, et les mettra en cache à des
- fins de comparaisons ultérieures. Ceci peut ralentir le démarrage du
- serveur.</p>
-
- <div class="example"><h3>Exemple</h3><p><code>
- ProxyBlock joes-garage.com some-host.co.uk rocky.wotsamattau.edu
- </code></p></div>
-
- <p><code>rocky.wotsamattau.edu</code> aurait aussi correspondu s'il
- avait été spécifié par son adresse IP.</p>
-
- <p>Notez que <code>wotsamattau</code> aurait suffi pour correspondre
- à <code>wotsamattau.edu</code>.</p>
-
- <p>Notez aussi que</p>
-
- <div class="example"><p><code>
- ProxyBlock *
- </code></p></div>
-
- <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êtes
-mandaté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é que pour les serveurs mandataires
- Apache au sein d'un Intranet. La directive
- <code class="directive">ProxyDomain</code> permet de spécifier le domaine
- par défaut auquel le serveur mandataire apache appartient. Si le
- serveur reçoit une requête pour un hôte sans nom de domaine, il va
- générer une réponse de redirection vers le même hôte suffixé par le
- <var>Domaine</var> spécifié.</p>
-
- <div class="example"><h3>Exemple</h3><p><code>
- ProxyRemote * http://firewall.example.com:81<br />
- NoProxy .example.com 192.168.112.0/21<br />
- ProxyDomain .example.com
- </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="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é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</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é:</a></th><td>Disponible depuis la version 2.0 d'Apache</td></tr>
-</table>
- <p>Cette directive est utile pour les configurations de mandataires
- inverses, lorsque vous souhaitez que les pages d'erreur envoyées
- aux utilisateurs finaux présentent un aspect homogè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équence (le comportement par défaut afficherait la page
- d'erreur du serveur mandaté, alors que c'est le message d'erreur SSI
- qui sera affiché si cette directive est à "on").</p>
-
- <p>Cette directive n'affecte pas le traitement des réponses
- informatives (1xx), de type succè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="proxyftpdircharset" id="proxyftpdircharset">Directive</a> <a name="ProxyFtpDirCharset" id="ProxyFtpDirCharset">ProxyFtpDirCharset</a></h2>
-<table class="directive">
-<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Définit le jeu de caractères des listings FTP
-mandatés</td></tr>
-<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>ProxyFtpDirCharset <var>jeu-caractères</var></code></td></tr>
-<tr><th><a href="directive-dict.html#Default">Défaut:</a></th><td><code>ProxyFtpDirCharset ISO-8859-1</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é:</a></th><td>Disponible depuis la version 2.2.7 d'Apache</td></tr>
-</table>
- <p>La directive <code class="directive">ProxyFtpDirCharset</code> permet de
- définir le jeu de caractères à utiliser pour les listings FTP en
- HTML générés par <code class="module"><a href="../mod/mod_proxy_ftp.html">mod_proxy_ftp</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="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é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é comme bloc-note pour
- les transferts de données entre entrée et sortie. La taille doit
- être au minimum égale à <code>8192</code> octets.</p>
-
- <p>Lorsqu'on utilise <code class="module"><a href="../mod/mod_proxy_ajp.html">mod_proxy_ajp</a></code>, la valeur
- minimale est alignée sur la limite de 1024 octets, et les valeurs
- supérieures à 65536 octets sont ramenées à 65536 octets, comme préconisé
- par le protocole AJP.</p>
-
- <p>Dans la plupart des cas, il n'y a aucune raison de modifier cette
- valeur.</p>
-
-
-</div>
-<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="directive-section"><h2><a name="proxymatch" id="proxymatch">Directive</a> <a name="ProxyMatch" id="ProxyMatch"><ProxyMatch></a></h2>
-<table class="directive">
-<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Conteneur de directives s'appliquant à des ressources
-mandatées correspondant à une expression rationnelle</td></tr>
-<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code><ProxyMatch <var>regex</var>> ...</ProxyMatch></code></td></tr>
-<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur, serveur virtuel</td></tr>
-<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
-<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_proxy</td></tr>
-</table>
- <p>La directive <code class="directive"><ProxyMatch></code> est
- identique à la directive <code class="directive"><a href="#proxy"><Proxy></a></code>, à 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>
-
-<h3>Voir aussi</h3>
-<ul>
-<li><code class="directive"><a href="#proxy"><Proxy></a></code></li>
-</ul>
-</div>
-<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="directive-section"><h2><a name="proxymaxforwards" id="proxymaxforwards">Directive</a> <a name="ProxyMaxForwards" id="ProxyMaxForwards">ProxyMaxForwards</a></h2>
-<table class="directive">
-<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Nombre maximum de mandataires à travers lesquelles une
-requête peut être redirigé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>
-<tr><th><a href="directive-dict.html#Compatibility">Compatibilité:</a></th><td>Disponible depuis Apache 2.0 ; comportement par défaut
-modifié dans 2.2.7</td></tr>
-</table>
- <p>La directive <code class="directive">ProxyMaxForwards</code> permet de
- spécifier le nombre maximum de mandataires à travers lesquels une
- requête peut passer dans le cas où la la requête ne contient pas
- d'en-tête <code>Max-Forwards</code>. Ceci permet de se prémunir
- contre les boucles infinies de mandataires ou contre les attaques de
- type déni de service.</p>
-
- <div class="example"><h3>Exemple</h3><p><code>
- ProxyMaxForwards 15
- </code></p></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 à un mandataire de
- définir <code>Max-Forwards</code> si le client ne l'a pas fait
- lui-même. Les versions précédentes d'Apache la définissaient
- systé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é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é=valeur</var>
- <var>[clé=valeur</var> ...]] [nocanon] [interpolate]</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 réfé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ôt comme miroir du serveur distant. Le serveur local est
- souvent nommé <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îne d'arguments.</p>
-
- <div class="warning">En général, la directive <code class="directive"><a href="#proxyrequests">ProxyRequests</a></code> doit être définie à
- <strong>off</strong> lorsqu'on utilise la directive
- <code class="directive">ProxyPass</code>.</div>
-
- <p>Supposons que le serveur local a pour adresse
- <code>http://example.com/</code> ; alors la ligne</p>
-
- <div class="example"><p><code>
- ProxyPass /miroir/foo/ http://backend.example.com/
- </code></p></div>
-
- <p>va convertir en interne toute requête pour
- <code>http://example.com/miroir/foo/bar</code> en une requête
- mandatée pour <code>http://backend.example.com/bar</code>.</p>
-
- <div class="warning">
- <p>Si le premier argument se termine par un slash
- <strong>/</strong>, il doit en ê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ête résultante vers le serveur
- d'arriè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>
-
- <div class="example"><p><code>
- ProxyPass /miroir/foo/i !<br />
- ProxyPass /miroir/foo http://backend.example.com
- </code></p></div>
-
- <p>va mandater toutes les requêtes pour <code>/miroir/foo</code>
- vers <code>backend.example.com</code>, <em>sauf</em> les requê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 traitées selon
- leur ordre d'apparition dans le fichier de configuration. La
- première qui correspond s'applique. Ainsi, vous devez classer les
- directives <code class="directive"><a href="#proxypass">ProxyPass</a></code> qui
- peuvent entrer en conflit, de l'URL la plus longue à la plus
- courte. Dans le cas contraire, les directives dont l'URL
- constitue une partie du début de l'URL de directives
- apparaissant plus loin dans la configuration vont occulter ces
- dernières. Notez que tout ceci est en relation avec le partage de
- worker.</p>
-
- <p>Pour les mêmes raisons, les exclusions doivent apparaître
- <em>avant</em> les directives <code class="directive">ProxyPass</code>
- générales.</p>
-
- </div>
-
- <p>Depuis la version 2.1 du serveur HTTP Apache, mod_proxy supporte
- les jeux de connexions vers un serveur d'arrière-plan. Ainsi, les
- connexions créées à la demande peuvent être conservées dans un
- jeu pour une utilisation ultérieure. Les limites de la taille
- du jeu de connexions et d'autres paramètres peuvent être définis au
- niveau de la directive <code class="directive">ProxyPass</code> via des
- arguments <code>clé=valeur</code> décrits dans la table ci-dessous.</p>
+ <p>Depuis la version 2.1 du serveur HTTP Apache, mod_proxy supporte
+ les jeux de connexions vers un serveur d'arrière-plan. Ainsi, les
+ connexions créées à la demande peuvent être conservées dans un
+ jeu pour une utilisation ultérieure. Les limites de la taille
+ du jeu de connexions et d'autres paramètres peuvent être définis au
+ niveau de la directive <code class="directive">ProxyPass</code> via des
+ arguments <code>clé=valeur</code> décrits dans la table ci-dessous.</p>
<p>Par défaut, mod_proxy permettra de conserver le nombre maximum de
connexions pouvant être utilisées simultanément par le processus
@@ -1421,533 +1065,889 @@ ProxyPassReverse /mirror/foo/ https://b
</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>
+<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>
+<tr><th><a href="directive-dict.html#Compatibility">Compatibilité:</a></th><td>Disponible depuis la version 2.2.9 d'Apache</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 à l'aide de
+ variables d'environnement, ces dernières pouvant ê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î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écifiée).</p>
+ <p>Conservez cette directive à 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é=valeur</var>
+ <var>[clé=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>
+<tr><th><a href="directive-dict.html#Compatibility">Compatibilité:</a></th><td>Disponible depuis la version 2.2.5
+d'Apache</td></tr>
+</table>
[... 1284 lines stripped ...]