Serveur HTTP Apache Version 2.5

Apache > Serveur HTTP > Documentation > Version 2.5 > Modules

# Module Apache mod_proxy_http2

Cette traduction peut être périmée. Vérifiez la version anglaise pour les changements récents.

Description: | Support de HTTP/2 pour `mod_proxy`
Statut: | Expérimental
Identificateur de Module: | proxy_http2_module
Fichier Source: | mod_proxy_http2.c
Compatibilité: | Disponible à partir de la version 2.4.19 du serveur HTTP Apache

### Sommaire

`mod_proxy_http2` ne supporte que HTTP/2 et ne permet pas de rétrogradation vers HTTP/1.1. Cela signifie que le serveur d'arrière-plan doit supporter HTTP/2 car HTTP/1.1 ne pourra alors pas être utilisé.

Ce module nécessite la présence de `mod_proxy` ; pour pouvoir traiter les requêtes mandatées HTTP/2, `mod_proxy` et `mod_proxy_http2` doivent donc être chargés par le serveur.

`mod_proxy_http2` travaille avec des requêtes entrantes en HTTP/1.1 ou HTTP/2. Dans les deux cas, les requêtes vers le même serveur d'arrière-plan sont envoyées via une seule connexion TCP, dans la mesure du possible (autrement dit lorsque la connexion peut être réutilisée).

Avertissement : il ne sera effectué aucune tentative de fusion de plusieurs requêtes entrantes HTTP/1 (devant être mandatées vers le même serveur d'arrière-plan) vers des flux HTTP/2 appartenant à la même requête HTTP/2. Chaque requête HTTP/1 entrante sera mandatée vers le serveur d'arrière-plan en utilisant une requête HTTP/2 séparée (tout en réutilisant si possible la même connexion TCP).

Ce module s'appuie sur libnghttp2 pour fournir le moteur central http/2.

### Avertissement

Ce module en est au stade expérimental. Ses comportement, directives et valeurs par défauts sont donc susceptibles de modifications d'une version à l'autre plus fréquentes que pour les autres modules. A ce titre, il est fortement conseillé aux utilisateurs de consulter le fichier "CHANGES" pour prendre connaissance de ces modifications.

### Avertissement

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

### Sujets

- Exemples de base
- Informations sur les requêtes
- HTTP/2 PUSH

### Directives

Ce module ne fournit aucune directive.

### Traitement des bugs

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

### Voir aussi

- `mod_http2`
- `mod_proxy`
- `mod_proxy_connect`

## Exemples de base ¶

Les exemples ci-dessous montrent comment configurer HTTP/2 pour des connexions d'arrière-plan vers un mandataire inverse.

### HTTP/2 (TLS)

    ProxyPass "/app" "h2://app.example.com"
    ProxyPassReverse "/app" "https://app.example.com"

### HTTP/2 (non sécurisé)

    ProxyPass "/app" "h2c://app.example.com"
    ProxyPassReverse "/app" "http://app.example.com"

Pour mandater en inverse les protocoles `h2` ou `h2c`, on utilise la directive `ProxyPassReverse` avec les schèmes habituels `https` et respectivement `http` qui sont connus et utilisés par l'agent utilisateur.

## Informations sur les requêtes ¶

`mod_proxy_http` fournit les informations sur les requêtes suivantes pour enregistrement dans les journaux en utilisant le format `%{VARNAME}n` avec les directives `LogFormat` ou `ErrorLogFormat` :

proxy-source-port
  Le numéro de port local utilisé pour la connexion vers le serveur d'arrière-plan.
proxy-status
  Le statut HTTP/2 en provenance du serveur d'arrière-plan.

## HTTP/2 PUSH ¶

Ce module ne supporte pas la fonctionnalité HTTP/2 PUSH. Les serveurs d'arrière-plan qui veulent indiquer des ressources à précharger doivent envoyer les en-têtes `Link` appropriés.

En cas de besoin, il peuvent le faire en utilisant les réponses intermédiaires `"103 Early Hints"` comme indiqué dans la RFC 8297, ce qui fournira les meilleures performances. Si le client comprend aussi le langage HTTP/2, il en résultera un PUSH de la part de httpd vers le celui-ci ou un simple transfert de la réponse 103.