Serveur Apache HTTP Version 2.4

Apache > Serveur HTTP > Documentation > Version 2.4 > Modules

# Module Apache mod_proxy_http

Description: | Module fournissant le support HTTP à `mod_proxy`
Statut: | Extension
Identificateur de Module: | proxy_http_module
Fichier Source: | mod_proxy_http.c

### Sommaire

Pour pouvoir fonctionner, ce module requiert le chargement de `mod_proxy`. Il fournit le support du mandatement des requêtes HTTP et HTTPS. `mod_proxy_http` supporte HTTP/0.9, HTTP/1.0 et HTTP/1.1. Il ne fournit aucune fonctionnalité de mise en cache. Si vous souhaitez mettre en oeuvre un mandataire qui assure aussi les fonctions de mise en cache, vous devez utiliser les services du module `mod_cache`.

Ainsi, pour pouvoir traiter les requêtes HTTP mandatées, `mod_proxy`, et `mod_proxy_http` doivent être chargés dans le serveur.

### Avertissement

N'activez pas la fonctionnalité de mandataire avant d'avoir sécurisé votre serveur. Les serveurs mandataires ouverts sont dangereux non seulement pour votre réseau, mais aussi pour l'Internet au sens large.

### Sujets

- Variables d'environnement
- Informations sur les requêtes

### Directives

Ce module ne fournit aucune directive.

### Traitement des bugs

- Journal des modifications de httpd
- Problèmes connus
- Signaler un bug

### Voir aussi

- `mod_proxy`
- `mod_proxy_connect`

## Variables d'environnement

Outre les directives de configuration qui contrôlent le comportement de `mod_proxy`, plusieurs variables d'environnement permettent de contrôler le fournisseur du protocole HTTP. Parmi les variables suivantes, celle qui ne nécessitent pas de valeur particulière sont définies quelle que soit la valeur qu'on leur affecte.

proxy-sendextracrlf
  Provoque l'envoi par le mandataire d'une nouvelle ligne CR-LF supplémentaire à la fin de la requête. Ceci constitue un moyen de contournement d'une bogue de certains navigateurs.
force-proxy-request-1.0
  Force le mandataire à envoyer des requêtes vers le serveur cible selon le protocole HTTP/1.0 et désactive les fonctionnalités propres à HTTP/1.1.
proxy-nokeepalive
  Force le mandataire à fermer la connexion avec le serveur cible après chaque requête.
proxy-chain-auth
  Si le mandataire requiert une authentification, il va lire et exploiter les données d'authentification pour mandataire envoyées par le client. Si proxy-chain-auth est définie, il va aussi faire suivre ces données vers le mandataire suivant dans la chaîne. Ceci peut s'avérer nécessaire si une chaîne de mandataires partagent les informations d'authentification. Avertissement concernant la sécurité : Ne définissez cette variable que si vous êtes sûr d'en avoir besoin, car elle peut provoquer la divulgation d'informations sensibles !
proxy-sendcl
  Avec HTTP/1.0, toutes les requêtes qui possèdent un corps (par exemple les requêtes POST) doivent comporter un en-tête Content-Length. Cette variable d'environnement force le mandataire Apache à envoyer cet en-tête au serveur cible, sans tenir compte de ce que lui a envoyé le client. Ceci permet d'assurer la compatibilité lorsqu'on mandate un serveur cible mettant en oeuvre un protocole de type HTTP/1.0 ou inconnu. Elle peut cependant nécessiter la mise en tampon de l'intégralité de la requête par le mandataire, ce qui s'avère très inefficace pour les requêtes de grande taille.
proxy-sendchunks ou proxy-sendchunked
  Cette variable constitue l'opposé de proxy-sendcl. Elle permet la transmission des corps de requêtes vers le serveur cible en utilisant un codage de transfert fractionné. Ceci permet une transmission des requêtes plus efficace, mais nécessite que le serveur cible supporte le protocole HTTP/1.1.
proxy-interim-response
  Cette variable peut prendre les valeurs `RFC` (valeur par défaut) ou `Suppress`. Les versions précédentes de httpd supprimaient les réponses intermédiaires HTTP (1xx) envoyées par le serveur cible. En pratique, si un serveur cible envoie une réponse intermédiaire, il se peut qu'il étende lui-même le protocole d'une manière dont nous n'avons pas connaissance, ou tout simplement non conforme. Le comportement du mandataire est donc maintenant configurable : définissez `proxy-interim-response RFC` pour être totalement compatible avec le protocole, ou `proxy-interim-response Suppress` pour supprimer les réponses intermédiaires.
proxy-initial-not-pooled
  Si cette variable est définie, aucune connexion faisant partie d'un jeu ne sera réutilisée si la requête du client est la requête initiale pour une connexion. Ceci permet d'éviter le message d'erreur "proxy: error reading status line from remote server" causé par la situation de compétition au cours de laquelle le serveur cible ferme la connexion du jeu après la vérification de la connexion par le mandataire, et avant que les données envoyées par le mandataire n'atteignent le serveur cible. Il faut cependant garder à l'esprit que la définition de cette variable dégrade les performances, particulièrement avec les clients HTTP/1.0.

## Informations sur les requêtes

`mod_proxy_http` enregistre les informations suivantes pour journalisation via le format `%{NOMVAR}n` dans les directives `LogFormat` ou `ErrorLogFormat` :

proxy-source-port
  Le port local utilisé pour la connexion vers le serveur d'arrière-plan.
proxy-status
  Le code d'état HTTP reçu du serveur d'arrière-plan.