1 <?xml version="1.0" encoding="UTF-8"?>
2 <!DOCTYPE modulesynopsis SYSTEM "../style/modulesynopsis.dtd">
3 <?xml-stylesheet type="text/xsl" href="../style/manual.fr.xsl"?>
4 <!-- English Revision: 1836468 -->
5 <!-- French translation : Lucien GENTIS -->
8 Licensed to the Apache Software Foundation (ASF) under one or more
9 contributor license agreements. See the NOTICE file distributed with
10 this work for additional information regarding copyright ownership.
11 The ASF licenses this file to You under the Apache License, Version 2.0
12 (the "License"); you may not use this file except in compliance with
13 the License. You may obtain a copy of the License at
15 http://www.apache.org/licenses/LICENSE-2.0
17 Unless required by applicable law or agreed to in writing, software
18 distributed under the License is distributed on an "AS IS" BASIS,
19 WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
20 See the License for the specific language governing permissions and
21 limitations under the License.
24 <modulesynopsis metafile="mod_proxy_http2.xml.meta">
26 <name>mod_proxy_http2</name>
27 <description>Support de HTTP/2 pour <module>mod_proxy</module></description>
28 <status>Experimental</status>
29 <sourcefile>mod_proxy_http2.c</sourcefile>
30 <identifier>proxy_http2_module</identifier>
33 <p><module>mod_proxy_http2</module> ne
34 supporte que HTTP/2 et ne permet pas de rétrogradation vers HTTP/1.1. Cela
35 signifie que le serveur d'arrière-plan doit supporter HTTP/2 car HTTP/1.1 ne
36 pourra alors pas être utilisé.</p>
38 <p>Ce module <em>nécessite</em> la présence de <module>mod_proxy</module> ;
39 pour pouvoir traiter les requêtes mandatées HTTP/2,
40 <module>mod_proxy</module> et <module>mod_proxy_http2</module> doivent donc
41 être chargés par le serveur.</p>
43 <p><module>mod_proxy_http2</module> travaille avec des requêtes entrantes en
44 HTTP/1.1 ou HTTP/2. Dans les deux cas, les requêtes vers le même serveur
45 d'arrière-plan sont envoyées
46 via une seule connexion TCP, dans la mesure du possible (autrement dit
47 lorsque la connexion peut être réutilisée).</p>
49 <p>Avertissement : il ne sera effectué aucune tentative de fusion de
50 plusieurs requêtes entrantes HTTP/1 (devant être mandatées vers le même
51 serveur d'arrière-plan) vers des flux HTTP/2 appartenant à la même requête
52 HTTP/2. Chaque requête HTTP/1 entrante sera mandatée vers le serveur
53 d'arrière-plan en utilisant une requête HTTP/2 séparée (tout en réutilisant
54 si possible la même connexion TCP).</p>
56 <p>Ce module s'appuie sur <a href="http://nghttp2.org/">libnghttp2</a> pour
57 fournir le moteur central http/2.</p>
59 <note type="warning"><title>Avertissement</title> <p>Ce module en est au
60 stade expérimental. Ses comportement, directives et valeurs par défauts sont
61 donc susceptibles de modifications d'une version à l'autre plus fréquentes
62 que pour les autres modules. A ce titre, il est fortement conseillé aux
63 utilisateurs de consulter le fichier "CHANGES" pour prendre connaissance de
64 ces modifications.</p> </note>
66 <note type="warning"><title>Avertissement</title>
67 <p>N'activez pas le mandatement avant d'avoir <a
68 href="mod_proxy.html#access">sécurisé votre serveur</a>. Les serveurs
69 mandataires ouverts sont dangereux non seulement pour votre propre réseau,
70 mais aussi pour l'Internet au sens large.</p>
73 <seealso><module>mod_http2</module></seealso>
74 <seealso><module>mod_proxy</module></seealso>
75 <seealso><module>mod_proxy_connect</module></seealso>
77 <section id="examples"><title>Exemples de base</title>
79 <p>Les exemples ci-dessous montrent comment configurer HTTP/2 pour des
80 connexions d'arrière-plan vers un mandataire inverse.</p>
82 <example><title>HTTP/2 (TLS)</title>
83 <highlight language="config">
84 ProxyPass "/app" "h2://app.example.com"
85 ProxyPassReverse "/app" "https://app.example.com"
89 <example><title>HTTP/2 (non sécurisé)</title>
90 <highlight language="config">
91 ProxyPass "/app" "h2c://app.example.com"
92 ProxyPassReverse "/app" "http://app.example.com"
97 <p>Pour mandater en inverse les protocoles <code>h2</code> ou
98 <code>h2c</code>, on utilise la directive
99 <directive>ProxyPassReverse</directive> avec les schèmes habituels
100 <code>https</code> et respectivement
101 <code>http</code> qui sont connus et utilisés par l'agent utilisateur.</p>
103 </section> <!-- /examples -->
105 <section id="notes"><title>Informations sur les requêtes</title>
106 <p><module>mod_proxy_http</module> fournit les informations sur les requêtes
107 suivantes pour enregistrement dans les journaux en utilisant le format
108 <code>%{VARNAME}n</code> avec les directives <directive
109 module="mod_log_config">LogFormat</directive> ou <directive
110 module="core">ErrorLogFormat</directive> :
113 <dt>proxy-source-port</dt>
114 <dd>Le numéro de port local utilisé pour la connexion vers le serveur
115 d'arrière-plan.</dd>
116 <dt>proxy-status</dt>
117 <dd>Le statut HTTP/2 en provenance du serveur d'arrière-plan.</dd>
121 <section id="h2push"><title>HTTP/2 PUSH</title>
122 <p>Ce module ne supporte pas la fonctionnalité HTTP/2 PUSH. Les serveurs
123 d'arrière-plan qui veulent indiquer des ressources à précharger doivent
124 envoyer les en-têtes <code>Link</code> appropriés.</p>
125 <p>En cas de besoin, il peuvent le faire en utilisant les réponses
126 intermédiaires <code>"103 Early Hints"</code> comme indiqué dans la <a
127 href="https://tools.ietf.org/html/rfc8297">RFC 8297</a>, ce qui fournira
128 les meilleures performances. Si le client comprend aussi le langage HTTP/2,
129 il en résultera un PUSH de la part de httpd vers le celui-ci ou un simple
130 transfert de la réponse 103.</p>