Serveur HTTP Apache Version 2.5
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 |
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.
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.
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.
Ce module ne fournit aucune directive.
Les exemples ci-dessous montrent comment configurer HTTP/2 pour des connexions d'arrière-plan vers un mandataire inverse.
ProxyPass "/app" "h2://app.example.com" ProxyPassReverse "/app" "https://app.example.com"
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.
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
:
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.