From b1a1c1d95059e2fefd7b5671eb110ab690409a84 Mon Sep 17 00:00:00 2001
From: Daniel Baumann
Description: | Serveur mandataire/passerelle multi-protocole |
---|---|
Statut: | Extension |
Identificateur de Module: | proxy_module |
ftp | mod_proxy_ftp |
HTTP/0.9, HTTP/1.0, et HTTP/1.1 | mod_proxy_http |
HTTP/2.0 | mod_proxy_http2 |
SCGI | mod_proxy_scgi |
UWSGI | mod_proxy_uwsgi |
WS and WSS (Web-sockets) | mod_proxy_wstunnel |
ProxyPass "/some/ws/capable/path/" "http://example.com/some/ws/capable/path/" upgrade=websocket
La directive LimitRequestBody
ne s'applique qu'aux
- corps de requêtes que le serveur met en file d'attente sur disque.
Description: | Transmission du message "100-continue" au serveur d'origine |
---|---|
Syntaxe: | Proxy100Continue Off|On |
Défaut: | Proxy100Continue On |
Contexte: | configuration globale, serveur virtuel, répertoire |
Statut: | Extension |
Module: | mod_proxy |
Compatibilité: | Disponible à partir de la version 2.4.40 du serveur HTTP Apache |
Cette directive permet de contrôler le transfert par le mandataire du + message "100-continue" (Expect:ation) vers le serveur d'origine. Si + elle est définie à "On", le serveur d'origine décidera lui-même si le corps + de la requête HTTP doit être lu. Si elle est définie à "Off", le mandataire + générera lui-même une réponse intermédiaire 100 Continue avant de + transférer le corps de la requête.
+Cette option n'est utilisable qu'avec les mandataires HTTP gérés par
+ mod_proxy_http
.
Description: | Outrepasser les pages d'erreur pour les contenus mandatés |
---|---|
Syntaxe: | ProxyErrorOverride On|Off |
Syntaxe: | ProxyErrorOverride Off|On [code ...] |
Défaut: | ProxyErrorOverride Off |
Contexte: | configuration globale, serveur virtuel, répertoire |
Statut: | Extension |
Module: | mod_proxy |
Compatibilité: | La liste de codes d'états a été ajoutée à partir de la version +2.4.47 du serveur HTTP Apache. |
Cette directive est utile pour les configurations de mandataires inverses, lorsque vous souhaitez que les pages d'erreur envoyées @@ -987,6 +1017,21 @@ mandatés informatives (1xx), de type succès normal (2xx), ou de redirection (3xx).
+Par défaut, ProxyErrorOverride
affecte toutes les
+ réponses avec un code compris entre 400 inclus et 600 exclus.
ProxyErrorOverride On+
Pour n'affecter que les réponses possèdant certains codes d'état + particuliers, vous pouvez spécifier ces derniers sous la forme d'une liste + en les séparant par des espaces. Les réponses dont le code d'état ne fait + pas partie de la liste ne seront pas affectées. Vous ne pouvez spécifier que + des codes d'erreurs, donc compris entre 400 inclus et 600 exclus.
+ +ProxyErrorOverride On 403 405 500 501 502 503 504+
ProxyTimeout
Le mot de passe utilisé par mod_proxy_ajp
. Voir
- la documentation de ce module pour plus de détails.
mod_proxy_ajp
. Il doit
+ identique au mot de passe configuré sur le côté serveur de la connexion
+ AJP.Protocole pris en charge par mod_proxy_http
ou
+ mod_proxy_wstunnel
pour le mécanisme de promotion de
+ protocole HTTP lors d'une négociation du client/navigateur HTTP (en
+ accord avec RFC 9110 -
+ Upgrade). Voir la note Promotion de
+ protocole ci-dessous
Le protocol accepté par mod_proxy_wstunnel
dans
- l'en-tête Upgrade. Voir la documentation de ce module pour plus de
- détails.
Type de mappage entre le chemin et l'url.
+ Détermine la normalisation et/ou le (non-)décodage que
+ mod_proxy
appliquera au chemin de l'uri
+ demandé avant de rechercher une correspondance avec le chemin.
+ Si un mappage correspond, il est appliqué au chemin de l'uri
+ de façon à ce que tous les contextes de répertoire qui utilisent un
+ chemin (comme <Location>
) fassent l'objet d'une
+ recherche de correspondance en utilisant le même mappage.
mapping=encoded
empêche le décodage des caractères %
+ contenus dans le chemin de l'uri de façon à ce que l'on
+ puisse par exemple utiliser des configurations telles que :
ProxyPass "/special%3Fsegment" "https://example.com/special%3Fsegment" mapping=encoded+ +
<Location "/special%3Fsegment"> + Require ip 172.17.2.0/24 +</Location>+ +
mapping=servlet
se réfère à la normalisation définie par
+ la spécification de la Servlet qui sera par exemple appliquée par Apache
+ Tomcat pour les conteneurs de servlet (en particulier, les paramètres du
+ chemin sont ignorés pour le mappage). Un chemin d'uri comme
+ /some;foo/path
sera alors mappé comme
+ /some/path
et correspondra donc à tout ce qui suit sans
+ tenir compte des paramètres du chemin demandé :
ProxyPass "/some/path" "https://servlet.example.com/some/path" mapping=servlet+ +
<Location "/some/path"> + Require valid-user +</Location>+ +
Il est recommandé d'utiliser le même mappage côté Apache httpd
+ que celui utilisé côté arrière-plan. Par exemple, lors de la
+ configuration des autorisations dans les sections
+ <Location>
pour des chemins mappés par
+ mod_proxy
comme conteneurs de servlet (comme les
+ applications s'exécutant sous Apache Tomcat), on doit utiliser la
+ définition mapping=servlet
pour éviter que les
+ paramètres du chemin et similaires n'interfèrent avec les
+ autorisations qui doivent être définies par Apache httpd.
Durée de vie (TTL) en secondes des résolutions DNS de l'adresse + du serveur d'arrière-plan dans le cache. + -1 signifie jusqu'au redémarrage de Apache httpd.
RewriteRule
et son drapeau
[P]
.
- Le mot-clé optionnel interpolate, en combinaison avec la directive +
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
@@ -1747,6 +1847,31 @@ ProxyPassReverse "/mirror/foo/" "http://backend.example.com/"
ProxyPassReverse "/mirror/foo/" "https://backend.example.com/"
+
Depuis la version 2.4.47 du serveur HTTP Apache, la promotion de
+ protocole (tunneling) peut être géré bout à bout par
+ mod_proxy_http
en utilisant le paramètre upgrade.
Bout à bout signifie que la requête de promotion de protocole en
+ provenance du client/navigateur est tout d'abord transmise par
+ mod_proxy_http
au serveur origine et que le protocole de
+ la connexion ne sera modifié (et « tunnelisé » par
+ mod_proxy_http
) que si le serveur origine accepte/initie
+ la promotion (réponse HTTP 101 Switching Protocols
). Si le
+ serveur origine renvoie une réponse différente,
+ mod_proxy_http
continuera la transmission en utilisant
+ (et en forçant) le protocole HTTP habituel pour cette connexion.
Voir Promotion de protocole vers Websocket
+ (versions 2.4.47 et ultérieures) pour un exemple de configuration qui
+ utilisemod_proxy_http
.
Avec les versions 2.4.46 et antérieures du serveur HTTP Apache (ou si
+ la directive ProxyWebsocketFallbackToProxyHttp
+ des versions 2.4.48 et ultérieures désactive la prise en charge par
+ mod_proxy_http
), voir la documentation de
+ mod_proxy_wstunnel
pour la méthode permettant de mandater
+ le protocole WebSocket.
Cette directive, ainsi que l'argument interpolate des +
Cette directive, ainsi que l'argument interpolate
des
directives ProxyPass
,
ProxyPassReverse
,
ProxyPassReverseCookieDomain
et
@@ -1800,7 +1925,7 @@ les configurations de mandataires inverses
ProxyPassReverseCookiePath
, en leur indiquant
de remplacer la chaîne ${nom_var}
dans les directives
de configuration par la valeur de la variable d'environnement
- nom_var
(si l'option interpolate est
+ nom_var
(si l'option interpolate
est
spécifiée).
La partie protocole/hostname/port de ProxyPass
peut contenir des variables, mais seulement celles qui sont accessibles au
@@ -1821,12 +1946,15 @@ les configurations de mandataires inverses
Description: | Fait correspondre des serveurs distants dans l'espace d'URL du serveur local en utilisant des expressions rationnelles |
---|---|
Syntaxe: | ProxyPassMatch [regex] !|url
-[clé=valeur
- [clé=valeur ...]] |
Syntaxe: | ProxyPassMatch [regex] !|url [key=value
+ [key=value ...]] |
Contexte: | configuration globale, serveur virtuel, répertoire |
Statut: | Extension |
Module: | mod_proxy |
Compatibilité: | Depuis la version 2.4.47, les paramètres key=value +sont pris en compte lorsque le paramètre url contient des références +arrières (voir note ci-dessous). + |
Cette directive est identique à la directive ProxyPass
, mais fait usage des
expressions rationnelles, au lieu d'une simple comparaison de
@@ -1848,22 +1976,6 @@ du serveur local en utilisant des expressions rationnelles
http://example.com/foo/bar.gif
en une requête mandatée
pour http://backend.example.com/foo/bar.gif
.
L'argument URL doit pouvoir être interprété en tant qu'URL - 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"- -
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"- -
Le drapeau !
vous permet de ne pas mandater un
sous-répertoire donné.
key=value
et url avec
+ références arrièresDepuis la version 2.4.47, les paramètres key=value
ne sont
+ plus ignorés dans une directive ProxyPassMatch
+ lorsqu'on utilise une url contenant des références arrières.
+ Cependant, pour conserver le comportement précédent relatif à la
+ réutilisation/conservation des connexions d'arrière-plan (qui n'avaient
+ jamais été réutilisées auparavant pour ces URLs), les paramètres
+ enablereuse et disablereuse prendront dans ce cas
+ respectivement comme valeurs par défaut off
et
+ on
. Définir explicitement enablereuse=on
permet
+ de réutiliser les connexions, sauf si des références
+ arrières se trouvent dans la partie authority
(nom d'hôte
+ et/ou port) de l'url (cette condition est imposée depuis la
+ version 2.4.55 du serveur HTTP Apache et provoque un avertissement au
+ démarrage car ces URLs ne sont pas réutilisables sous cette forme).
Lors de la construction de l'URL cible de la règle, il convient @@ -1900,7 +2031,7 @@ du serveur local en utilisant des expressions rationnelles
ProxyPassReverse [chemin] url
-[interpolate]
ProxyPass
correspondante.
- Le mot-clé optionnel interpolate, en
- combinaison avec la directive
- ProxyPassInterpolateEnv
, permet
- l'interpolation des variables d'environnement spécifiées en
- utilisant le format ${VARNAME} Notez que l'interpolation
- n'est pas supportée dans la partie protocole d'une URL.
-
Le mot-clé optionnel interpolate
, en combinaison avec la
+ directive ProxyPassInterpolateEnv
,
+ permet l'interpolation des variables d'environnement spécifiées en 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
argument est omis et le répertoire local est obtenu à partir de
@@ -1987,7 +2116,7 @@ ProxyPassReverseCookiePath "/" "/mirror/foo/"
ProxyPassReverseCookieDomain domaine-interne
-domaine-public [interpolate]
ProxyPassReverseCookiePath chemin-interne
-chemin-public [interpolate]
Lorsqu'elle est activée, cette directive va transmettre l'en-tête
- Host: de la requête entrante vers le serveur mandaté, au lieu du nom
- d'hôte spécifié par la directive ProxyPass
.
Host:
de la requête entrante vers le serveur mandaté, au lieu
+ du nom d'hôte spécifié par la directive ProxyPass
.
Cette directive est habituellement définie à Off
.
Elle est principalement utile dans les configurations particulières
@@ -2082,25 +2211,27 @@ et FTP
Description: | Mandataire distant à utiliser pour traiter certaines requêtes |
---|---|
Syntaxe: | ProxyRemote comparaison serveur-distant |
Syntaxe: | ProxyRemote match remote-server [username:password] |
Contexte: | configuration globale, serveur virtuel |
Statut: | Extension |
Module: | mod_proxy |
Compatibilité: | Le troisième argument facultatif est disponible depuis la version +2.5.1 du serveur HTTP Apache. |
Cette directive permet de définir des mandataires distants pour
- ce mandataire. comparaison est soit le nom d'un protocole
+ ce mandataire. match est soit le nom d'un protocole
que supporte le serveur distant, soit une URL partielle pour
laquelle le serveur distant devra être utilisé, soit *
pour indiquer que le serveur distant doit être utilisé pour toutes
- les requêtes. serveur-distant est une URL partielle
+ les requêtes. remote-server est une URL partielle
correspondant au serveur distant. Syntaxe :
- serveur-distant =
- protocole://nom-serveur[:port]
+ remote-server =
+ scheme://hostname[:port]
protocole est effectivement le protocole à utiliser +
scheme est effectivement le protocole à utiliser
pour communiquer avec le serveur distant ; ce module ne supporte que
http
et https
. Lorsqu'on utilise
https
, les requêtes sont redirigées par le mandataire
@@ -2120,6 +2251,13 @@ ProxyRemote "ftp" "http://ftpproxy.mydomain:8080"
l'espace d'URL d'un serveur virtuel, même si ce serveur est caché
par un autre mandataire direct.
Le troisième argument optionnel username:password permet de + spécifier des données d'authentification basiques à transmettre au mandataire + distant défini. Ces données d'authentification seront toujoujours envoyées + sans attendre que le mandataire distant n'effectue une demande + d'authentification. La variable d'environnement Proxy-Chain-Auth n'est plus prise en + compte si cet argument est utilisé.
+