<?xml version="1.0"?>
<!DOCTYPE modulesynopsis SYSTEM "../style/modulesynopsis.dtd">
<?xml-stylesheet type="text/xsl" href="../style/manual.fr.xsl"?>
-<!-- English Revision: 1354430:1367958 (outdated) -->
+<!-- English Revision: 1367958 -->
<!-- French translation : Lucien GENTIS -->
<!-- Reviewed by : Vincent Deffontaines -->
<tr><td>AJP13 (Protocole Apache JServe version
1.3)</td><td><module>mod_proxy_ajp</module></td></tr>
<tr><td>CONNECT (pour
- SSL)</td><td><module>mod_proxy_connect</module></td></tr>
+ SSL)</td><td><module>mod_proxy_connect</module></td></tr>
<tr><td>FastCGI</td><td><module>mod_proxy_fcgi</module></td></tr>
<tr><td>ftp</td><td><module>mod_proxy_ftp</module></td></tr>
<tr><td>HTTP/0.9, HTTP/1.0, et
- HTTP/1.1</td><td><module>mod_proxy_http</module></td></tr>
+ HTTP/1.1</td><td><module>mod_proxy_http</module></td></tr>
<tr><td>SCGI</td><td><module>mod_proxy_scgi</module></td></tr>
</table>
</li>
</ul>
-
+
<p>En outre, d'autres modules fournissent des fonctionnalités
étendues. <module>mod_cache</module> et ses modules associés
fournissent la mise en cache. Les directives <code>SSLProxy*</code>
documentation de <module>mod_cache</module>.</p>
<example><title>Mandataire inverse</title>
- ProxyPass /foo http://foo.example.com/bar<br />
- ProxyPassReverse /foo http://foo.example.com/bar
+ <highlight language="config">
+ProxyPass /foo http://foo.example.com/bar
+ProxyPassReverse /foo http://foo.example.com/bar
+ </highlight>
</example>
<example><title>Mandataire direct</title>
- ProxyRequests On<br />
- ProxyVia On<br />
- <br />
- <Proxy *><br />
- <indent>
- Require host internal.example.com<br />
- </indent>
- </Proxy>
+ <highlight language="config">
+ProxyRequests On
+ProxyVia On
+
+<Proxy *>
+ Require host internal.example.com
+</Proxy>
+ </highlight>
</example>
</section> <!-- /examples -->
utilise dans le cadre d'un mandataire inverse :</p>
<example>
+ <highlight language="config">
ProxyPass /example http://backend.example.com connectiontimeout=5 timeout=30
+ </highlight>
</example>
+
<p>Cette directive va créer un worker associé à l'URL du serveur
original <code>http://backend.example.com</code>, et utilisant les
directive <directive module="mod_proxy">ProxySet</directive>,</p>
<example>
+ <highlight language="config">
ProxySet http://backend.example.com connectiontimeout=5 timeout=30
+ </highlight>
</example>
+
<p>ou encore via les directives <directive
module="mod_proxy">Proxy</directive> et <directive
module="mod_proxy">ProxySet</directive> :</p>
- <example>
- <Proxy http://backend.example.com><br />
- <indent>
- ProxySet connectiontimeout=5 timeout=30
- </indent>
- </Proxy>
- </example>
+ <highlight language="config">
+<Proxy http://backend.example.com>
+ ProxySet connectiontimeout=5 timeout=30
+</Proxy>
+ </highlight>
<p>L'utilisation de workers définis explicitement dans le mode
mandataire direct n'est pas très courante, car les mandataires
<p>L'URL qui identifie un worker correspond à l'URL de son serveur
original, y compris un éventuel chemin donné :</p>
- <example>
- ProxyPass /exemples http://backend.example.com/exemples<br />
- ProxyPass /docs http://backend.example.com/docs
- </example>
+ <highlight language="config">
+ProxyPass /examples http://backend.example.com/examples
+ProxyPass /docs http://backend.example.com/docs
+ </highlight>
<p>Dans cet exemple, deux workers différents sont définis, chacun
d'eux utilisant des configurations et jeux de connexions
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>
- <example>
- ProxyPass /apps http://backend.example.com/ timeout=60<br />
- ProxyPass /examples http://backend.example.com/exemples timeout=10
- </example>
+ <highlight language="config">
+ProxyPass /apps http://backend.example.com/ timeout=60
+ProxyPass /examples http://backend.example.com/examples timeout=10
+ </highlight>
<p>le second worker n'est pas vraiment créé. C'est le premier
worker qui est en fait utilisé. L'avantage de ceci réside dans
module="mod_proxy" type="section">Proxy</directive> comme dans
l'exemple suivant :</p>
- <example>
- <Proxy *><br />
- <indent>
- Require ip 192.168.0<br />
- </indent>
- </Proxy>
- </example>
+ <highlight language="config">
+<Proxy *>
+ Require ip 192.168.0
+</Proxy>
+ </highlight>
<p>Pour plus de détails sur les directives de contrôle d'accès,
voir la documentation du module
<p>Il s'agit des variables <code>force-proxy-request-1.0</code> et
<code>proxy-nokeepalive</code>.</p>
- <example>
- <Location /serveur-non-conforme/><br />
- <indent>
- ProxyPass http://serveur-non-conforme:7001/foo/<br />
- SetEnv force-proxy-request-1.0 1<br />
- SetEnv proxy-nokeepalive 1<br />
- </indent>
- </Location>
- </example>
+ <highlight language="config">
+<Location /buggyappserver/>
+ ProxyPass http://buggyappserver:7001/foo/
+ SetEnv force-proxy-request-1.0 1
+ SetEnv proxy-nokeepalive 1
+</Location>
+ </highlight>
</section> <!-- /envsettings -->
contenu via votre serveur mandataire que les hôtes appartenant à
<code>votre-reseau.example.com</code> :</p>
- <example>
- <Proxy *><br />
- <indent>
- Require host votre-reseau.example.com<br />
- </indent>
- </Proxy>
- </example>
+ <highlight language="config">
+<Proxy *>
+ Require host votre-reseau.example.com
+</Proxy>
+ </highlight>
<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>
- <example>
- <Proxy http://example.com/foo/*><br />
- <indent>
- SetOutputFilter INCLUDES<br />
- </indent>
- </Proxy>
- </example>
+ <highlight language="config">
+<Proxy http://example.com/foo/*>
+ SetOutputFilter INCLUDES
+</Proxy>
+ </highlight>
</usage>
<seealso><directive type="section" module="mod_proxy">ProxyMatch</directive></seealso>
<module>mod_proxy_ftp</module> doivent également être chargés dans le
serveur.</p>
- <p><module>mod_proxy_connect</module> doit être activé pour pouvoir
- mandater (en direct) des sites HTTPS.</p>
+ <p>Pour activer la fonctionnalité de mandataire sur les sites chiffrés en HTTPS, le module
+ <module>mod_proxy_connect</module> doit également être chargé dans le serveur.</p>
<note type="warning"><title>Avertissement</title>
<p>N'activez pas la fonctionnalité de mandataire avec la directive
distant en utilisant la méthode HTTP CONNECT.</p>
<example><title>Exemple</title>
- ProxyRemote http://bons-gars.example.com/ http://gars-mirroirs.example.com:8000<br />
- ProxyRemote * http://mandataire-intelligent.localdomain<br />
- ProxyRemote ftp http://mandataire-ftp.mon-domaine:8080
+ <highlight language="config">
+ProxyRemote http://goodguys.example.com/ http://mirrorguys.example.com:8000
+ProxyRemote * http://cleverproxy.localdomain
+ProxyRemote ftp http://ftpproxy.mydomain:8080
+ </highlight>
</example>
<p>Dans la dernière ligne de l'exemple, le mandataire va faire
module="mod_proxy">ProxyPass</directive>.</p>
<example>
- <Proxy balancer://hotcluster><br />
- <indent>
- BalancerMember http://www2.example.com:8080 loadfactor=1<br />
- BalancerMember http://www3.example.com:8080 loadfactor=2<br />
- ProxySet lbmethod=bytraffic<br />
- </indent>
- </Proxy>
+ <highlight language="config">
+<Proxy balancer://hotcluster>
+ BalancerMember http://www2.example.com:8080 loadfactor=1
+ BalancerMember http://www3.example.com:8080 loadfactor=2
+ ProxySet lbmethod=bytraffic
+</Proxy>
+ </highlight>
</example>
- <example>
- <Proxy http://backend><br />
- <indent>
- ProxySet keepalive=On<br />
- </indent>
- </Proxy>
- </example>
+ <highlight language="config">
+<Proxy http://backend>
+ ProxySet keepalive=On
+</Proxy>
+ </highlight>
- <example>
+ <highlight language="config">
ProxySet balancer://foo lbmethod=bytraffic timeout=15
- </example>
+ </highlight>
- <example>
+ <highlight language="config">
ProxySet ajp://backend:7001 timeout=15
- </example>
+ </highlight>
<note type="warning"><title>Avertissement</title>
<p>Gardez à l'esprit qu'une même clé de paramètre peut avoir
<p>Supposons que le serveur local a pour adresse
<code>http://example.com/</code> ; alors la ligne</p>
- <example>
- <Location /miroir/foo/><br />
- <indent>
- ProxyPass http://backend.example.com/<br />
- </indent>
- </Location><br />
- </example>
+ <highlight language="config">
+<Location /mirror/foo/>
+ ProxyPass http://backend.example.com/
+</Location>
+ </highlight>
<p>va convertir en interne toute requête pour
<code>http://example.com/miroir/foo/bar</code> en une requête
permettre un contrôle dynamique via l'interface <a
href="mod_proxy_balancer.html#balancer_manager">Balancer Manager</a> :</p>
- <example>
+ <highlight language="config">
ProxyPass /miroir/foo/ http://backend.example.com/
- </example>
+ </highlight>
<note type="warning">
<p>Si le premier argument se termine par un slash
<p>Le drapeau <code>!</code> permet de soustraire un sous-répertoire
du mandat inverse, comme dans l'exemple suivant :</p>
- <example>
- <Location /miroir/foo/><br />
- <indent>
- ProxyPass http://backend.example.com/<br />
- </indent>
- </Location><br />
- <Location /miroir/foo/i><br />
- <indent>
- ProxyPass !<br />
- </indent>
- </Location><br />
- </example>
+ <highlight language="config">
+<Location /mirror/foo/>
+ ProxyPass http://backend.example.com/
+</Location>
+<Location /mirror/foo/i>
+ ProxyPass !
+</Location>
+ </highlight>
- <example>
- ProxyPass /miroir/foo/i !<br />
- ProxyPass /miroir/foo http://backend.example.com
- </example>
+ <highlight language="config">
+ProxyPass /mirror/foo/i !
+ProxyPass /mirror/foo http://backend.example.com
+ </highlight>
<p>va mandater toutes les requêtes pour <code>/miroir/foo</code>
vers <code>backend.example.com</code>, <em>sauf</em> les requêtes
configuration ou la conception du module multi-processus (MPM).</p>
<example><title>Exemple</title>
+ <highlight language="config">
ProxyPass /example http://backend.example.com max=20 ttl=120 retry=300
+ </highlight>
</example>
<table border="2"><tr><th>Paramètres de BalancerMember</th></tr></table>
délai en secondes pour l'attente de la réponse. Cette
fonctionnalité a été ajoutée pour éviter les problèmes avec les
serveurs d'arrière-plan bloqués ou surchargés.
-
+
Le trafic
réseau peut s'en trouver augmenté en fonctionnement normal, ce
qui peut poser problème, mais peut s'en trouver diminué dans les
<td>0</td>
<td>Nombre de membres supplémentaires que l'on peut ajouter à ce
répartiteur en plus de ceux définis au niveau de la
- configuration.
+ configuration.
</td></tr>
<tr><td>forcerecovery</td>
<td>On</td>
</table>
<p>Exemple de configuration d'un répartiteur de charge</p>
- <example>
- ProxyPass /zone-speciale http://special.example.com smax=5 max=10<br />
- ProxyPass / balancer://mon-cluster/ stickysession=JSESSIONID|jsessionid nofailover=On<br />
- <Proxy balancer://mon-cluster><br />
- <indent>
- BalancerMember ajp://1.2.3.4:8009<br />
- BalancerMember ajp://1.2.3.5:8009 loadfactor=20<br />
- # Serveur moins puissant ; faites-lui traiter moins de requêtes,<br />
- BalancerMember ajp://1.2.3.6:8009 loadfactor=5<br />
- </indent>
- </Proxy>
- </example>
+ <highlight language="config">
+ProxyPass /special-area http://special.example.com smax=5 max=10
+ProxyPass / balancer://mycluster/ stickysession=JSESSIONID|jsessionid nofailover=On
+<Proxy balancer://mycluster>
+ BalancerMember ajp://1.2.3.4:8009
+ BalancerMember ajp://1.2.3.5:8009 loadfactor=20
+ # Less powerful server, don't send as many requests there,
+ BalancerMember ajp://1.2.3.6:8009 loadfactor=5
+</Proxy>
+ </highlight>
<p>Configuration d'un serveur cible de réserve qui ne sera utilisé que si
aucun autre serveur cible n'est disponible</p>
- <example>
- ProxyPass / balancer://hotcluster/ <br />
- <Proxy balancer://hotcluster><br />
- <indent>
- BalancerMember ajp://1.2.3.4:8009 loadfactor=1<br />
- BalancerMember ajp://1.2.3.5:8009 loadfactor=2<br />
- # La ligne suivante configure le serveur cible de réserve<br />
- BalancerMember ajp://1.2.3.6:8009 status=+H<br />
- ProxySet lbmethod=bytraffic
- </indent>
- </Proxy>
- </example>
+ <highlight language="config">
+ProxyPass / balancer://hotcluster/
+<Proxy balancer://hotcluster>
+ BalancerMember ajp://1.2.3.4:8009 loadfactor=1
+ BalancerMember ajp://1.2.3.5:8009 loadfactor=2
+ # The server below is on hot standby
+ BalancerMember ajp://1.2.3.6:8009 status=+H
+ ProxySet lbmethod=bytraffic
+</Proxy>
+ </highlight>
<p>Normalement, mod_proxy va mettre sous leur forme canonique les
URLs traitées par ProxyPass. Mais ceci peut être incompatible avec
<p>Supposons que le serveur local a pour adresse
<code>http://example.com/</code> ; alors</p>
- <example>
+ <highlight language="config">
ProxyPassMatch ^(/.*\.gif)$ http://backend.example.com$1
- </example>
+ </highlight>
<p>va provoquer la conversion interne de la requête locale
<code>http://example.com/foo/bar.gif</code> en une requête mandatée
<em>avant</em> les substitutions d'expressions rationnelles (et
doit aussi l'être après). Ceci limite les correspondances que vous
pouvez utiliser. Par exemple, si l'on avait utilisé</p>
- <example>
+ <highlight language="config">
ProxyPassMatch ^(/.*\.gif)$ http://backend.example.com:8000$1
- </example>
+ </highlight>
<p>dans l'exemple précédent, nous aurions provoqué 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>
- <example>
+ <highlight language="config">
ProxyPassMatch ^/(.*\.gif)$ http://backend.example.com:8000/$1
- </example>
+ </highlight>
</note>
<p>Le drapeau <code>!</code> vous permet de ne pas mandater un
<p>Seuls les en-têtes de réponse HTTP spécialement mentionnés
ci-dessus seront réécrits. Apache httpd ne réécrira ni les autres en-têtes
- de réponse, ni les références d'URLs dans les pages HTML. Cela
+ de réponse, ni par défaut les références d'URLs dans les pages HTML. Cela
signifie que dans le cas où un contenu mandaté contient des
références à des URLs absolues, elles court-circuiteront le
- mandataire. Le module <a
- href="http://apache.webthing.com/mod_proxy_html/">mod_proxy_html</a>
- de Nick Kew est un module tiers qui parcourt le code HTML et réécrit
- les références d'URL.</p>
+ mandataire. Pour réécrire un contenu HTML afin qu'il corresponde au
+ mandataire, vous devez charger et activer le module
+ <module>mod_proxy_html</module>.
+ </p>
<p><var>chemin</var> est le nom d'un chemin virtuel local.
<var>url</var> est une URL partielle pour le serveur distant - ils
<p>Supposons par exemple que le serveur local a pour adresse
<code>http://example.com/</code> ; alors</p>
- <example>
- ProxyPass /miroir/foo/ http://backend.example.com/<br />
- ProxyPassReverse /miroir/foo/ http://backend.example.com/<br />
- ProxyPassReverseCookieDomain backend.example.com public.example.com<br />
- ProxyPassReverseCookiePath / /miroir/foo/
- </example>
+ <highlight language="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/
+ </highlight>
<p>ne va pas seulement provoquer la conversion interne d'une requête
locale pour <code>http://example.com/miroir/foo/bar</code> en une
Dans l'exemple fourni avec la directive <directive
module="mod_proxy">ProxyPassReverse</directive>, la directive :
</p>
- <example>
+ <highlight language="config">
ProxyPassReverseCookiePath / /mirror/foo/
- </example>
+ </highlight>
<p>
va réécrire un cookie possédant un chemin d'arrière-plan <code>/</code>
(ou <code>/example</code> ou en fait tout chemin)
serveur.</p>
<example><title>Exemple</title>
+ <highlight language="config">
ProxyBlock news.example.com auctions.example.com friends.example.com
+ </highlight>
</example>
<p>Notez qu'<code>example</code> suffirait aussi pour atteindre
<p>Notez aussi que</p>
- <example>
+ <highlight language="config">
ProxyBlock *
- </example>
+ </highlight>
<p>bloque les connexions vers tous les sites.</p>
</usage>
système doit être utilisée.</p>
<example><title>Exemple</title>
+ <highlight language="config">
ProxyReceiveBufferSize 2048
+ </highlight>
</example>
</usage>
</directivesynopsis>
type déni de service.</p>
<example><title>Exemple</title>
+ <highlight language="config">
ProxyMaxForwards 15
+ </highlight>
</example>
<p>Notez que la définition de la directive
module="mod_proxy">ProxyRemote</directive>.</p>
<example><title>Exemple</title>
- ProxyRemote * http://pare-feu.example.com:81<br />
- NoProxy .example.com 192.168.112.0/21
+ <highlight language="config">
+ProxyRemote * http://firewall.example.com:81
+NoProxy .example.com 192.168.112.0/21
+ </highlight>
</example>
<p>Le type des arguments <var>serveur</var> de la directive
<var>Domaine</var> spécifié.</p>
<example><title>Exemple</title>
+ <highlight language="config">
ProxyRemote * http://firewall.example.com:81<br />
NoProxy .example.com 192.168.112.0/21<br />
ProxyDomain .example.com
+ </highlight>
</example>
</usage>
</directivesynopsis>
<context>virtual host</context>
</contextlist>
<compatibility>Disponible depuis la version 2.3.9</compatibility>
-
+
<usage>
<p>Cette directive permet de définir une adresse IP locale
spécifique à laquelle faire référence lors d'une connexion à un