X-Git-Url: https://granicus.if.org/sourcecode?a=blobdiff_plain;f=docs%2Fmanual%2Fmod%2Fmod_proxy.html.fr;h=f650af770e3fdcdd99fd8ed5e79852a0b2aa6412;hb=545e553dfb71a19c5ee67958ba29d9ae55d3cdea;hp=6d94421d7be1db376cb22de2061da144b6372aa3;hpb=6223db5fa5791839bf34dd593814655af9be80c2;p=apache diff --git a/docs/manual/mod/mod_proxy.html.fr b/docs/manual/mod/mod_proxy.html.fr index 6d94421d7b..f650af770e 100644 --- a/docs/manual/mod/mod_proxy.html.fr +++ b/docs/manual/mod/mod_proxy.html.fr @@ -5,17 +5,17 @@ This file is generated from xml source: DO NOT EDIT XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX --> -
Serveur Apache HTTP Version 2.5
Description: | Serveur mandataire/passerelle multi-protocole |
---|---|
Statut: | Extension |
Identificateur de Module: | proxy_module |
AJP13 (Protocole Apache JServe version 1.3) | mod_proxy_ajp |
CONNECT (pour - SSL) | mod_proxy_connect | mod_proxy_connect |
FastCGI | mod_proxy_fcgi |
ftp | mod_proxy_ftp |
HTTP/0.9, HTTP/1.0, et - HTTP/1.1 | mod_proxy_http | mod_proxy_http |
SCGI | mod_proxy_scgi |
WS and WSS (Web-sockets) | mod_proxy_wstunnel |
En outre, d'autres modules fournissent des fonctionnalités
étendues. mod_cache
et ses modules associés
fournissent la mise en cache. Les directives SSLProxy*
@@ -93,7 +96,9 @@
mod_proxy_ftp
mod_proxy_http
mod_proxy_scgi
mod_proxy_wstunnel
mod_proxy_balancer
mod_ssl
Si en outre, vous désirez activer la mise en cache, consultez la
documentation de mod_cache
.
- ProxyPass /foo http://foo.example.com/bar
- ProxyPassReverse /foo http://foo.example.com/bar
-
ProxyPass /foo http://foo.example.com/bar +ProxyPassReverse /foo http://foo.example.com/bar+
ProxyRequests On +ProxyVia On + +<Proxy *> + Require host internal.example.com +</Proxy>+
Vous pouvez aussi forcer le traitement d'une requête en tant que + requête de mandataire inverse en créant un gestionnaire de transfert + approprié. Dans l'exemple suivant, toutes les requêtes pour + des scripts PHP seront transmises au serveur FastCGI + spécifié via un mandat inverse : +
+ +<FilesMatch \.php$> + SetHandler "proxy:unix:/path/to/app.sock|fcgi://localhost/" +</FilesMatch>+
Cette fonctionnalité est disponible à partir de la version + 2.4.10 du serveur HTTP Apache.
-
- ProxyRequests On
- ProxyVia On
-
- <Proxy *>
-
- Require host internal.example.com
-
- </Proxy>
-
ProxyPass
ou ProxyPassMatch
lorsqu'on les
utilise dans le cadre d'un mandataire inverse :
-
- ProxyPass /example http://backend.example.com connectiontimeout=5 timeout=30
-
ProxyPass /example http://backend.example.com connectiontimeout=5 timeout=30+
Cette directive va créer un worker associé à l'URL du serveur
original http://backend.example.com
, et utilisant les
@@ -261,19 +284,16 @@
d'un mandataire direct, les workers sont en général définis via la
directive ProxySet
,
- ProxySet http://backend.example.com connectiontimeout=5 timeout=30
-
ProxySet http://backend.example.com connectiontimeout=5 timeout=30+
ou encore via les directives Proxy
et ProxySet
:
- <Proxy http://backend.example.com>
-
- ProxySet connectiontimeout=5 timeout=30
-
- </Proxy>
-
<Proxy http://backend.example.com> + ProxySet connectiontimeout=5 timeout=30 +</Proxy>+
L'utilisation de workers définis explicitement dans le mode mandataire direct n'est pas très courante, car les mandataires @@ -291,10 +311,9 @@
L'URL qui identifie un worker correspond à l'URL de son serveur original, y compris un éventuel chemin donné :
-
- ProxyPass /exemples http://backend.example.com/exemples
- ProxyPass /docs http://backend.example.com/docs
-
ProxyPass /examples http://backend.example.com/examples +ProxyPass /docs http://backend.example.com/docs+
Dans cet exemple, deux workers différents sont définis, chacun d'eux utilisant des configurations et jeux de connexions @@ -306,10 +325,9 @@ correspond au début de l'URL d'un autre worker défini plus loin dans le fichier de configuration. Dans l'exemple suivant,
-
- ProxyPass /apps http://backend.example.com/ timeout=60
- ProxyPass /examples http://backend.example.com/exemples timeout=10
-
ProxyPass /apps http://backend.example.com/ timeout=60 +ProxyPass /examples http://backend.example.com/examples timeout=10+
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
@@ -362,13 +380,10 @@
de contrôle <Proxy>
comme dans
l'exemple suivant :
- <Proxy *>
-
- Require ip 192.168.0
-
- </Proxy>
-
<Proxy *> + Require ip 192.168.0 +</Proxy>+
Pour plus de détails sur les directives de contrôle d'accès,
voir la documentation du module
@@ -382,7 +397,7 @@
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 définissant la directive ProxyPass
à "off"), le contrôle
+ inverse (en utilisant la directive ProxyPass
avec ProxyRequests Off
), le contrôle
d'accès est moins critique car les clients ne peuvent contacter
que les serveurs que vous avez spécifiés.
Il s'agit des variables force-proxy-request-1.0
et
proxy-nokeepalive
.
- <Location /serveur-non-conforme/>
-
- ProxyPass http://serveur-non-conforme:7001/foo/
- SetEnv force-proxy-request-1.0 1
- SetEnv proxy-nokeepalive 1
-
- </Location>
-
<Location /buggyappserver/> + ProxyPass http://buggyappserver:7001/foo/ + SetEnv force-proxy-request-1.0 1 + SetEnv proxy-nokeepalive 1 +</Location>+
Voir aussi les directives ProxyPreserveHost
et ProxyVia
directives, qui permettent
de contrôler d'autres en-têtes de requête.
Note : Si vous devez ajouter des en-têtes particuliers à la
+ requête mandatée, utilisez la directive RequestHeader
.
Description: | Héritage des membres du groupes de répartition de + charge du mandataire définis au niveau du serveur principal |
---|---|
Syntaxe: | BalancerInherit On|Off |
Défaut: | BalancerInherit On |
Contexte: | configuration du serveur, serveur virtuel |
Statut: | Extension |
Module: | mod_proxy |
Compatibilité: | Disponible à partir de la version 2.4.5 du serveur + HTTP Apache. |
Cette directive permet d'attribuer au serveur virtuel courant + l'héritage des membres de groupes de répartition de charge + définis au niveau du serveur + principal. Elle ne doit pas être activée si vous + utilisez la fonctionnalité de modifications dynamiques du + gestionnaire de répartition de charge (Balancer Manager) pour + éviter des problèmes et des comportements inattendus.
+Les définitions au niveau du serveur principal constituent + les définitions par défaut au niveau des serveurs virtuels.
+La désactivation de ProxyPassInherit désactive aussi la
+ directive BalancerInherit
.
Cette directive parmet d'ajouter un membre à un groupe de +
Cette directive permet d'ajouter un membre à un groupe de
répartition de charge. Elle peut se trouver dans un conteneur
<Proxy balancer://...>
, et accepte
tous les paramètres de paires clé/valeur que supporte la directive
ProxyPass
.
La directive BalancerMember
accepte un paramètre
+
La directive BalancerMember
accepte un paramètre
supplémentaire : loadfactor. Il s'agit du facteur de
charge du membre - un nombre entre 1 (valeur par défaut) et 100, qui
définit la charge à appliquer au membre en question.
L'argument balancerurl n'est requis que s'il ne se trouve pas +
L'argument balancerurl n'est requis que s'il ne se trouve pas
dèjà dans la directive de conteneur <Proxy
balancer://...>
. Il correspond à l'URL d'un
répartiteur de charge défini par une directive ProxyPass
.
La partie chemin de l'URL du membre du groupe de répartition de
+ charge dans toute directive de conteneur <Proxy
+ balancer://...>
est ignorée.
Les slashes de fin doivent normalement être supprimés de l'URL
+ d'un BalancerMember
.
Description: | Tente de conserver les changements effectués par le + gestionnaire de répartition de charge après un redémarrage du + serveur. |
---|---|
Syntaxe: | BalancerPersist On|Off |
Défaut: | BalancerPersist Off |
Contexte: | configuration du serveur, serveur virtuel |
Statut: | Extension |
Module: | mod_proxy |
Compatibilité: | BalancerPersist n'est disponible qu'à partir de la + version 2.4.4 du serveur HTTP Apache. |
Cette directive permet de conserver le contenu de l'espace + mémoire partagé associé aux répartiteurs de charge et à leurs + membres après un redémarrage du serveur. Ces modifications + locales ne sont ainsi pas perdues lors des transitions d'état + dues à un redémarrage.
+ProxyRemote
.
-
- ProxyRemote * http://pare-feu.example.com:81
- NoProxy .example.com 192.168.112.0/21
-
ProxyRemote * http://firewall.example.com:81 +NoProxy .example.com 192.168.112.0/21+
Le type des arguments serveur de la directive
NoProxy
appartiennent à la liste suivante
@@ -724,26 +789,35 @@ mandat
contenu via votre serveur mandataire que les hôtes appartenant à
votre-reseau.example.com
:
- <Proxy *>
-
- Require host votre-reseau.example.com
-
- </Proxy>
-
<Proxy *> + Require host votre-reseau.example.com +</Proxy>+
Dans l'exemple suivant, tous les fichiers du répertoire
foo
de example.com
seront traités par le
filtre INCLUDES
lorsqu'ils seront envoyés par
l'intermédiaire du serveur mandataire :
- <Proxy http://example.com/foo/*>
-
- SetOutputFilter INCLUDES
-
- </Proxy>
-
<Proxy http://example.com/foo/*> + SetOutputFilter INCLUDES +</Proxy>+ + +
Une URL d'arrière-plan sera concernée par le conteneur Proxy si
+ elle commence par la url-avec-jokers, 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 <Location>
qui, pour le cas de cette note,
+ traitera le segment de chemin final comme s'il se terminait par un
+ slash.
Pour un contrôle plus fin de la correspondance des URL, voir la
+ directive <ProxyMatch>
.
La directive ProxyBadHeader
permet de
déterminer le comportement de mod_proxy
lorsqu'il
@@ -811,28 +884,46 @@ incorrectes d'une r
Description: | Termes, serveurs ou domaines bloqués par le -mandataire |
---|---|
Syntaxe: | ProxyBlock *|terme|serveur|domaine
-[terme|serveur|domaine] ... |
Description: | Interdit les requêtes mandatées vers certains hôtes |
Syntaxe: | ProxyBlock *|nom d'hôte|nom d'hôte partiel
+[nom d'hôte|nom d'hôte partiel]... |
Contexte: | configuration du serveur, serveur virtuel |
Statut: | Extension |
Module: | mod_proxy |
La directive ProxyBlock
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 bloqués par le serveur
- mandataire. La module proxy va aussi tenter de déterminer les
- adresses IP des éléments 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.
- ProxyBlock news.example.com auctions.example.com friends.example.com
-
La directive ProxyBlock
permet d'interdire
+ l'accès FTP ou HTTP via le mandataire à certains hôtes en fonction
+ d'une correspondance exacte ou partielle avec un nom d'hôte, ou dans
+ la mesure du possible en fonction d'une comparaison d'adresses IP.
Chaque paramètre de la directive
+ ProxyBlock
accepte comme valeur soit
+ *
, soit une chaîne alphanumérique. Au démarrage, le
+ module tente de résoudre toute chaîne alphanumérique depuis un nom
+ DNS vers un jeu d'adresses IP, mais toute erreur de DNS est ignorée.
Si un paramètre a pour valeur "*
",
+ mod_proxy
interdira l'accès à tout site FTP ou
+ HTTP.
Dans le cas contraire, pour toute requête vers une ressource FTP
+ ou HTTP via le mandataire, mod_proxy
va comparer le
+ nom d'hôte de l'URI de la requête avec chaque chaîne alphanumérique
+ spécifiée. Si une chaîne correspond, même partiellement, l'accès est
+ refusé. Si aucune chaîne ne correspond, et si un mandataire distant
+ (forward) est configuré via la directive
+ ProxyRemote
ou
+ ProxyRemoteMatch
, l'accès est autorisé. Si
+ aucun mandataire distant (forward) n'est configuré, l'adresse IP
+ correspondant au nom d'hôte de l'URI est comparée à toutes les
+ adresses IP résolues au démarrage, et l'accès est refusé si une
+ correspondance est trouvée.
Notez que les recherches DNS peuvent ralentir le processus de + démarrage du serveur.
+ +ProxyBlock news.example.com auctions.example.com friends.example.com+
Notez qu'example
suffirait aussi pour atteindre
ces sites.
Notez aussi que
-
- ProxyBlock *
-
ProxyBlock *+
bloque les connexions vers tous les sites.
@@ -866,11 +956,10 @@ mandat générer une réponse de redirection vers le même hôte suffixé par le Domaine spécifié. -
- ProxyRemote * http://firewall.example.com:81
+ Exemple
ProxyRemote * http://firewall.example.com:81
NoProxy .example.com 192.168.112.0/21
- ProxyDomain .example.com
-
Cette directive est utile pour les configurations de mandataires inverses, lorsque vous souhaitez que les pages d'erreur envoyées @@ -917,8 +1005,11 @@ donn
Dans la plupart des cas, il n'y a aucune raison de modifier cette valeur.
+Si elle est utilisée avec AJP, cette directive permet de définir
- la taille maximale du paquet AJP en octets. Si vous ne conservez pas
+ la taille maximale du paquet AJP en octets. Si la valeur spécifiée
+ est supérieure à 65536, elle est corrigée et prend la valeur 65536.
+ Si vous ne conservez pas
la valeur par défaut, vous devez aussi modifier l'attribut
packetSize
de votre connecteur AJP du côté de Tomcat !
L'attribut packetSize
n'est disponible que dans Tomcat
@@ -944,6 +1035,20 @@ mandat
identique à la directive <Proxy>
, à l'exception qu'elle définit
les URLs auxquelles elle s'applique en utilisant une expression rationnelle.
A partir de la version 2.4.8, les groupes nommés et les
+ références arrières sont extraits et enregistrés dans
+ l'environnement avec leur nom en majuscules et préfixé par "MATCH_". Ceci permet
+ de référencer des URLs dans des expressions
+ ou au sein de modules comme mod_rewrite
. Pour
+ éviter toute confusion, les références arrières numérotées (non
+ nommées) sont ignorées. Vous devez utiliser à la place des groupes
+ nommés.
<ProxyMatch ^http://(?<sitename>[^/]+)> + require ldap-group cn=%{env:MATCH_SITENAME},ou=combined,o=Example +</ProxyMatch>+ +
<Proxy>
La directive ProxyMaxForwards
permet de
spécifier le nombre maximum de mandataires à travers lesquels une
@@ -969,9 +1072,8 @@ modifi
contre les boucles infinies de mandataires ou contre les attaques de
type déni de service.
- ProxyMaxForwards 15
-
ProxyMaxForwards 15+
Notez que la définition de la directive
ProxyMaxForwards
constitue une violation du
@@ -1004,20 +1106,38 @@ l'espace d'URLs du serveur local
chemin virtuel local ; url est une URL partielle pour le
serveur distant et ne doit pas contenir de chaîne d'arguments.
ProxyRequests
doit être définie à
off lorsqu'on utilise la directive
ProxyPass
.Le support des sockets de style Unix est fourni ; il suffit pour
+ cela d'utiliser une URL cible préfixée par
+ unix:/path/lis.sock|
. Par exemple, pour mandater HTTP
+ et cibler l'UDS /home/www/socket, vous devez utiliser
+ unix:/home/www.socket|http://localhost/whatever/
. Comme
+ le socket est local, le nom d'hôte utilisé (ici
+ localhost
) peut être sujet à discussion, mais il est
+ transmis dans l'en-tête Host: de la requête.
unix:
tient compte de la directive
+ DefaultRuntimeDir
.'|'
, la directive
+ RewriteRule
doit posséder l'option
+ [P,NE]
.Supposons que le serveur local a pour adresse
http://example.com/
; alors la ligne
- <Location /miroir/foo/>
-
- ProxyPass http://backend.example.com/
-
- </Location>
-
<Location /mirror/foo/> + ProxyPass http://backend.example.com/ +</Location>+
va convertir en interne toute requête pour
http://example.com/miroir/foo/bar
en une requête
@@ -1028,9 +1148,8 @@ l'espace d'URLs du serveur local
présente en très grand nombre. Elle possède l'avantage de
permettre un contrôle dynamique via l'interface Balancer Manager :
- ProxyPass /miroir/foo/ http://backend.example.com/
-
ProxyPass /miroir/foo/ http://backend.example.com/+
Si le premier argument se termine par un slash @@ -1044,23 +1163,17 @@ l'espace d'URLs du serveur local
Le drapeau !
permet de soustraire un sous-répertoire
du mandat inverse, comme dans l'exemple suivant :
- <Location /miroir/foo/>
-
- ProxyPass http://backend.example.com/
-
- </Location>
- <Location /miroir/foo/i>
-
- ProxyPass !
-
- </Location>
-
<Location /mirror/foo/> + ProxyPass http://backend.example.com/ +</Location> +<Location /mirror/foo/i> + ProxyPass ! +</Location>+ + +
ProxyPass /mirror/foo/i ! +ProxyPass /mirror/foo http://backend.example.com-
- ProxyPass /miroir/foo/i !
- ProxyPass /miroir/foo http://backend.example.com
-
va mandater toutes les requêtes pour /miroir/foo
vers backend.example.com
, sauf les requêtes
@@ -1112,9 +1225,8 @@ l'espace d'URLs du serveur local
enfants, sauf si un seul processus enfant est autorisé par la
configuration ou la conception du module multi-processus (MPM).
- ProxyPass /example http://backend.example.com max=20 ttl=120 retry=300
-
ProxyPass /example http://backend.example.com max=20 ttl=120 retry=300+
Paramètres de BalancerMember |
---|
enablereuse | +On | +Fournie à l'intention des gestionnaires de projet
+ qui nécessitent un accord pour la réutilisation des connexions
+ (tels que mod_proxy_fcgi ),
+ cette option est l'inverse de l'option 'disablereuse' ci-dessus.
+ |
flushpackets | off | Permet de définir si le module mandataire doit vider @@ -1226,6 +1345,9 @@ l'espace d'URLs du serveur local | 0 | Avec la clé Ping, le serveur web va "tester" la connexion
vers le serveur d'arrière-plan avant de transmettre la requête.
+ Pour les valeurs négatives, le test est une simple vérification
+ de socket, alors que pour les valeurs positives, il s'agit d'une
+ vérification plus approfondie dépendant du protocole.
Avec AJP, mod_proxy_ajp envoie une requête
CPING sur la connexion ajp13 (implémenté sur Tomcat
3.3.2+, 4.1.28+ et 5.0.13+). Avec HTTP,
@@ -1236,7 +1358,7 @@ l'espace d'URLs du serveur local |
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
@@ -1319,7 +1441,7 @@ l'espace d'URLs du serveur local
stickysessionsep | +"." | +Permet de définir le caractère de séparation dans le cookie + de session. En effet, certains serveurs d'application d'arrière-plan + n'utilisent pas le '.' comme caractère de séparation. Par + exemple, le serveur Oracle Weblogic utilise le caractère '!'. + Cette option permet donc de définir le caractère de séparation à + une valeur appropriée. Si elle est définie à 'Off', aucun + caractère de séparation ne sera utilisé. |
scolonpathdelim | Off | @@ -1392,6 +1525,16 @@ l'espace d'URLs du serveur local|
failontimeout | +Off | +Si ce paramètre est défini à "On", un délai d'attente
+ dépassé en entrée/sortie après envoi d'une requête au serveur
+ d'arrière-plan va mettre le processus en état d'erreur. La
+ sortie de cet état d'erreur se passe de la même façon que pour
+ les autres erreurs. + Disponible depuis la version 2.4.5 du serveur HTTP Apache. + |
nonce | <auto> | Le nombre à usage unique de protection utilisé dans la page @@ -1410,7 +1553,7 @@ l'espace d'URLs du serveur local | 0 | 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. |
forcerecovery | On | @@ -1420,38 +1563,33 @@ l'espace d'URLs du serveur local
Exemple de configuration d'un répartiteur de charge
-
- ProxyPass /zone-speciale http://special.example.com smax=5 max=10
- ProxyPass / balancer://mon-cluster/ stickysession=JSESSIONID|jsessionid nofailover=On
- <Proxy balancer://mon-cluster>
-
- BalancerMember ajp://1.2.3.4:8009
- BalancerMember ajp://1.2.3.5:8009 loadfactor=20
- # Serveur moins puissant ; faites-lui traiter moins de requêtes,
- BalancerMember ajp://1.2.3.6:8009 loadfactor=5
-
- </Proxy>
-
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>+
Configuration d'un serveur cible de réserve qui ne sera utilisé que si aucun autre serveur cible n'est disponible
-
- ProxyPass / balancer://hotcluster/
- <Proxy balancer://hotcluster>
-
- BalancerMember ajp://1.2.3.4:8009 loadfactor=1
- BalancerMember ajp://1.2.3.5:8009 loadfactor=2
- # La ligne suivante configure le serveur cible de réserve
- BalancerMember ajp://1.2.3.6:8009 status=+H
- ProxySet lbmethod=bytraffic
-
- </Proxy>
-
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>+
Normalement, mod_proxy va mettre sous leur forme canonique les URLs traitées par ProxyPass. Mais ceci peut être incompatible avec @@ -1463,16 +1601,6 @@ l'espace d'URLs du serveur local car la protection limitée contre les attaques à base d'URL que fournit le mandataire est alors supprimée.
-Le mot-clé optionnel interpolate (disponible depuis
- httpd 2.2.9), en combinaison avec la directive
- ProxyPassInterpolateEnv
, permet à ProxyPass
- d'interpoler les variables d'environnement à l'aide de la syntaxe
- ${VARNAME}. Notez que de nombreuses variables
- d'environnement standard dérivées de CGI n'existeront pas lorsque
- l'interpolation se produit ; vous devrez alors encore avoir avoir
- recours à mod_rewrite
pour des règles
- complexes.
Par défaut, mod_proxy inclut la chaîne de paramètres lors de la
génération de la variable d'environnement
SCRIPT_FILENAME. Le mot-clé optionnel noquery
@@ -1495,7 +1623,56 @@ l'espace d'URLs du serveur local
souple, reportez-vous à la documentaion de la directive RewriteRule
et son drapeau
[P]
.
Le mot-clé optionnel interpolate, en combinaison avec la directive
+ ProxyPassInterpolateEnv
, permet à ProxyPass
+ d'interpoler les variables d'environnement à l'aide de la syntaxe
+ ${VARNAME}. Notez que de nombreuses variables
+ d'environnement standard dérivées de CGI n'existeront pas lorsque
+ l'interpolation se produit ; vous devrez alors encore avoir avoir
+ recours à mod_rewrite
pour des règles
+ complexes. Notez aussi que l'interpolation n'est pas supportée dans
+ la partie protocole d'une URL. La détermination dynamique du
+ protocole peut être effectuée à l'aide de
+ mod_rewrite
comme dans l'exemple suivant :
RewriteEngine On + +RewriteCond %{HTTPS} =off +RewriteRule . - [E=protocol:http] +RewriteCond %{HTTPS} =on +RewriteRule . - [E=protocol:https] + +RewriteRule ^/mirror/foo/(.*) %{ENV:protocol}://backend.example.com/$1 [P] +ProxyPassReverse /mirror/foo/ http://backend.example.com/ +ProxyPassReverse /mirror/foo/ https://backend.example.com/+ + +
Description: | Héritage des directives ProxyPass définies au niveau du +serveur principal |
---|---|
Syntaxe: | ProxyPassInherit On|Off |
Défaut: | ProxyPassInherit On |
Contexte: | configuration du serveur, serveur virtuel |
Statut: | Extension |
Module: | mod_proxy |
Compatibilité: | Disponible à partir de la version 2.4.5 du serveur +HTTP Apache. |
Cette directive permet à un serveur virtuel d'hériter des
+ directives ProxyPass
définies
+ au niveau du serveur principal. Si vous utilisez la fonctionnalité de
+ modifications dynamiques du Balancer Manager, cette directive peut
+ causer des problèmes et des comportements inattendus et doit donc
+ être désactivée.
Les valeurs définies au niveau du serveur principal + constituent les valeurs par défaut pour tous les serveurs virtuels.
+La désactivation de ProxyPassInherit désactive aussi la
+ directive BalancerInherit
.
Cette directive, ainsi que l'argument interpolate des
directives ProxyPass
,
@@ -1548,12 +1724,14 @@ du serveur local en utilisant des expressions rationnelles
toute correspondance entre parenthèses dans la chaîne donnée et
l'utiliser comme nouvelle url.
Supposons que le serveur local a pour adresse
http://example.com/
; alors
- ProxyPassMatch ^(/.*\.gif)$ http://backend.example.com$1
-
ProxyPassMatch ^(/.*\.gif)$ http://backend.example.com/$1+
va provoquer la conversion interne de la requête locale
http://example.com/foo/bar.gif
en une requête mandatée
@@ -1564,16 +1742,14 @@ du serveur local en utilisant des expressions rationnelles
avant 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é
- ProxyPassMatch ^(/.*\.gif)$ http://backend.example.com:8000$1
-
ProxyPassMatch ^(/.*\.gif)$ http://backend.example.com:8000$1+
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 :
-
- ProxyPassMatch ^/(.*\.gif)$ http://backend.example.com:8000/$1
-
ProxyPassMatch ^/(.*\.gif)$ http://backend.example.com:8000/$1+
Le drapeau !
vous permet de ne pas mandater un
@@ -1587,6 +1763,14 @@ du serveur local en utilisant des expressions rationnelles
plus flexible, voyez la directive RewriteRule
avec le drapeau
[P]
.
Lorsque le paramètre URL n'utilise pas de références arrières + dans l'expression rationnelle, l'URL originale sera ajoutée au + paramètre URL. +
+Lors de la construction de l'URL cible de la règle, il convient @@ -1620,12 +1804,13 @@ par un serveur mandat
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 mod_proxy_html - de Nick Kew est un module tiers qui parcourt le code HTML et réécrit - les références d'URL.
+ mandataire. Pour réécrire un contenu HTML afin qu'il corresponde au + mandataire, vous devez charger et activer le module +mod_proxy_html
.
+
chemin est le nom d'un chemin virtuel local. url est une URL partielle pour le serveur distant - ils @@ -1634,12 +1819,11 @@ par un serveur mandat
Supposons par exemple que le serveur local a pour adresse
http://example.com/
; alors
- ProxyPass /miroir/foo/ http://backend.example.com/
- ProxyPassReverse /miroir/foo/ http://backend.example.com/
- ProxyPassReverseCookieDomain backend.example.com public.example.com
- ProxyPassReverseCookiePath / /miroir/foo/
-
ProxyPass /mirror/foo/ http://backend.example.com/ +ProxyPassReverse /mirror/foo/ http://backend.example.com/ +ProxyPassReverseCookieDomain backend.example.com public.example.com +ProxyPassReverseCookiePath / /mirror/foo/+
ne va pas seulement provoquer la conversion interne d'une requête
locale pour http://example.com/miroir/foo/bar
en une
@@ -1661,11 +1845,12 @@ par un serveur mandat
ProxyPass
correspondante.
Le mot-clé optionnel interpolate (disponible depuis - httpd 2.2.9), utilisé en combinaison avec la directive +
Le mot-clé optionnel interpolate,
+ utilisé en combinaison avec la directive
ProxyPassInterpolateEnv
, permet
l'interpolation des variables d'environnement spécifiées en
- utilisant le format ${VARNAME}.
+ utilisant le format ${VARNAME}. Notez que l'interpolation
+ n'est pas supportée dans la partie protocole d'une URL.
Lorsque cette directive est utilisée dans une section <Location>
, le premier
@@ -1723,9 +1908,8 @@ r
Dans l'exemple fourni avec la directive ProxyPassReverse
, la directive :
- ProxyPassReverseCookiePath / /mirror/foo/
-
ProxyPassReverseCookiePath / /mirror/foo/+
va réécrire un cookie possédant un chemin d'arrière-plan /
(ou /example
ou en fait tout chemin)
@@ -1743,7 +1927,7 @@ du mandataire
Lorsqu'elle est activée, cette directive va transmettre l'en-tête
@@ -1775,9 +1959,8 @@ et FTP
0
pour indiquer que la taille de tampon par défaut du
système doit être utilisée.
- ProxyReceiveBufferSize 2048
-
ProxyReceiveBufferSize 2048+
https
, les requêtes sont redirigées par le mandataire
distant en utilisant la méthode HTTP CONNECT.
-
- ProxyRemote http://bons-gars.example.com/ http://gars-mirroirs.example.com:8000
- ProxyRemote * http://mandataire-intelligent.localdomain
- ProxyRemote ftp http://mandataire-ftp.mon-domaine:8080
-
ProxyRemote http://goodguys.example.com/ http://mirrorguys.example.com:8000 +ProxyRemote * http://cleverproxy.localdomain +ProxyRemote ftp http://ftpproxy.mydomain:8080+
Dans la dernière ligne de l'exemple, le mandataire va faire
suivre les requêtes FTP, encapsulées dans une autre requête mandatée
@@ -1867,6 +2049,9 @@ direct
mod_proxy_ftp
doivent également être chargés dans le
serveur.
Pour activer la fonctionnalité de mandataire sur les sites chiffrés en HTTPS, le module
+ mod_proxy_connect
doit également être chargé dans le serveur.
N'activez pas la fonctionnalité de mandataire avec la directive
ProxyRequests
avant
@@ -1891,8 +2076,6 @@ charge
Cette directive propose une méthode alternative pour définir tout
paramètre relatif aux répartiteurs de charge et serveurs cibles de
@@ -1903,31 +2086,23 @@ du serveur HTTP Apache.
est créé. Ceci peut s'avérer utile pour la mise en oeuvre d'un
mandataire inverse via une directive RewriteRule
au lieu de ProxyPass
.
- <Proxy balancer://hotcluster>
-
- BalancerMember http://www2.example.com:8080 loadfactor=1
- BalancerMember http://www3.example.com:8080 loadfactor=2
- ProxySet lbmethod=bytraffic
-
- </Proxy>
-
<Proxy balancer://hotcluster> + BalancerMember http://www2.example.com:8080 loadfactor=1 + BalancerMember http://www3.example.com:8080 loadfactor=2 + ProxySet lbmethod=bytraffic +</Proxy>+
- <Proxy http://backend>
-
- ProxySet keepalive=On
-
- </Proxy>
-
<Proxy http://backend> + ProxySet keepalive=On +</Proxy>-
- ProxySet balancer://foo lbmethod=bytraffic timeout=15
-
- ProxySet ajp://backend:7001 timeout=15
-
ProxySet balancer://foo lbmethod=bytraffic timeout=15+ + +
ProxySet ajp://backend:7001 timeout=15+
Gardez à l'esprit qu'une même clé de paramètre peut avoir @@ -1965,7 +2140,6 @@ mod_status
Cette directive permet de spécifier si les données d'état du répartiteur de charge du mandataire doivent être affichées via la @@ -1987,7 +2161,6 @@ mandat
Cette directive permet à l'utilisateur de spécifier un délai pour les requêtes mandatées. Ceci s'avère utile dans le cas d'un serveur @@ -2050,7 +2223,7 @@ var comments_identifier = 'http://httpd.apache.org/docs/trunk/mod/mod_proxy.html var s = d.createElement('script'); s.type = 'text/javascript'; s.async = true; - s.src = 'https://c.apaste.info/show_comments.lua?site=' + comments_shortname + '&page=' + comments_identifier; + s.src = 'https://comments.apache.org/show_comments.lua?site=' + comments_shortname + '&page=' + comments_identifier; (d.getElementsByTagName('head')[0] || d.getElementsByTagName('body')[0]).appendChild(s); } else { @@ -2058,8 +2231,8 @@ var comments_identifier = 'http://httpd.apache.org/docs/trunk/mod/mod_proxy.html } })(window, document); //-->