2 <!DOCTYPE modulesynopsis SYSTEM "../style/modulesynopsis.dtd">
3 <?xml-stylesheet type="text/xsl" href="../style/manual.fr.xsl"?>
4 <!-- English Revision : 1507326 -->
5 <!-- French translation : Lucien GENTIS -->
6 <!-- Reviewed by : Vincent Deffontaines -->
9 Licensed to the Apache Software Foundation (ASF) under one or more
10 contributor license agreements. See the NOTICE file distributed with
11 this work for additional information regarding copyright ownership.
12 The ASF licenses this file to You under the Apache License, Version 2.0
13 (the "License"); you may not use this file except in compliance with
14 the License. You may obtain a copy of the License at
16 http://www.apache.org/licenses/LICENSE-2.0
18 Unless required by applicable law or agreed to in writing, software
19 distributed under the License is distributed on an "AS IS" BASIS,
20 WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
21 See the License for the specific language governing permissions and
22 limitations under the License.
25 <modulesynopsis metafile="mod_proxy_http.xml.meta">
27 <name>mod_proxy_http</name>
28 <description>Module fournissant le support HTTP à
29 <module>mod_proxy</module></description>
30 <status>Extension</status>
31 <sourcefile>mod_proxy_http.c</sourcefile>
32 <identifier>proxy_http_module</identifier>
35 <p>Pour pouvoir fonctionner, ce module <em>requiert</em> le
36 chargement de <module>mod_proxy</module>. Il fournit le support du
37 mandatement des requêtes HTTP et HTTPS. <module>mod_proxy_http</module>
38 supporte HTTP/0.9, HTTP/1.0 et HTTP/1.1. Il ne fournit
39 <em>aucune</em> fonctionnalité de mise en cache. Si vous souhaitez
40 mettre en oeuvre un mandataire qui assure aussi les fonctions de
41 mise en cache, vous devez utiliser les services du module
42 <module>mod_cache</module>.</p>
44 <p>Ainsi, pour pouvoir traiter les requêtes HTTP mandatées,
45 <module>mod_proxy</module>, et <module>mod_proxy_http</module>
46 doivent être chargés dans le serveur.</p>
48 <note type="warning"><title>Avertissement</title>
49 <p>N'activez pas la fonctionnalité de mandataire avant d'avoir <a
50 href="mod_proxy.html#access">sécurisé votre serveur</a>. Les
51 serveurs mandataires ouverts sont dangereux non seulement pour
52 votre réseau, mais aussi pour l'Internet au sens large.</p>
55 <seealso><module>mod_proxy</module></seealso>
56 <seealso><module>mod_proxy_connect</module></seealso>
58 <section id="env"><title>Variables d'environnement</title>
59 <p>Outre les directives de configuration qui contrôlent le
60 comportement de <module>mod_proxy</module>, plusieurs <dfn>variables
61 d'environnement</dfn> permettent de contrôler le fournisseur du
62 protocole HTTP. Parmi les variables suivantes, celle qui ne
63 nécessitent pas de valeur particulière sont définies quelle que soit
64 la valeur qu'on leur affecte.</p>
66 <dt>proxy-sendextracrlf</dt>
67 <dd>Provoque l'envoi par le mandataire d'une nouvelle ligne
68 CR-LF supplémentaire à la fin de la requête.
70 moyen de contournement d'une bogue de certains
72 <dt>force-proxy-request-1.0</dt>
73 <dd>Force le mandataire à envoyer des requêtes vers le serveur
74 cible selon le protocole HTTP/1.0 et désactive les
75 fonctionnalités propres à HTTP/1.1.</dd>
76 <dt>proxy-nokeepalive</dt>
77 <dd>Force le mandataire à fermer la connexion avec le serveur
78 cible après chaque requête.</dd>
79 <dt>proxy-chain-auth</dt>
80 <dd>Si le mandataire requiert une authentification, il va lire
81 et exploiter les données d'authentification pour mandataire
82 envoyées par le client. Si <var>proxy-chain-auth</var> est
83 définie, il va <em>aussi</em> faire suivre ces données vers le
84 mandataire suivant dans la chaîne. Ceci peut s'avérer nécessaire
85 si une chaîne de mandataires partagent les informations
87 <strong>Avertissement concernant la sécurité :</strong>
88 Ne définissez cette variable que si vous êtes sûr d'en avoir
89 besoin, car elle peut provoquer la divulgation d'informations
92 <dd>Avec HTTP/1.0, toutes les requêtes qui possèdent un corps
93 (par exemple les requêtes POST) doivent comporter un en-tête
94 <var>Content-Length</var>. Cette variable d'environnement force
95 le mandataire Apache à envoyer cet en-tête au serveur cible,
96 sans tenir compte de ce que lui a envoyé le client. Ceci permet
97 d'assurer la compatibilité lorsqu'on mandate un serveur cible
98 mettant en oeuvre un protocole de type HTTP/1.0 ou inconnu. Elle
99 peut cependant nécessiter la mise en tampon de l'intégralité de
100 la requête par le mandataire, ce qui s'avère très inefficace
101 pour les requêtes de grande taille.</dd>
102 <dt>proxy-sendchunks ou proxy-sendchunked</dt>
103 <dd>Cette variable constitue l'opposé de
104 <var>proxy-sendcl</var>. Elle permet la transmission des corps
105 de requêtes vers le serveur cible en utilisant un codage de
106 transfert fractionné. Ceci permet une transmission des requêtes
107 plus efficace, mais nécessite que le serveur cible supporte le
108 protocole HTTP/1.1.</dd>
109 <dt>proxy-interim-response</dt>
110 <dd>Cette variable peut prendre les valeurs <code>RFC</code>
111 (valeur par défaut) ou
112 <code>Suppress</code>. Les versions précédentes de httpd
113 supprimaient les réponses intermédiaires HTTP (1xx) envoyées par
114 le serveur cible. En pratique, si un serveur cible envoie une
115 réponse intermédiaire, il se peut qu'il étende lui-même le
116 protocole d'une manière dont nous n'avons pas connaissance, ou
117 tout simplement non conforme. Le comportement du mandataire est
118 donc maintenant configurable : définissez
119 <code>proxy-interim-response RFC</code> pour être totalement
120 compatible avec le protocole, ou <code>proxy-interim-response
121 Suppress</code> pour supprimer les réponses intermédiaires.</dd>
122 <dt>proxy-initial-not-pooled</dt>
123 <dd>Si cette variable est définie, aucune connexion faisant
124 partie d'un jeu ne sera réutilisée si la connexion client est
125 une connexion initiale. Ceci permet d'éviter le message d'erreur
126 "proxy: error reading status line from remote server" causé par
127 la situation de compétition au cours de laquelle le serveur
128 cible ferme la connexion du jeu après la vérification de la
129 connexion par le mandataire, et avant que les données envoyées
130 par le mandataire n'atteignent le serveur cible. Il faut
131 cependant garder à l'esprit que la définition de cette variable
132 dégrade les performances, particulièrement avec les clients
138 <section id="notes"><title>Informations sur les requêtes</title>
139 <p><module>mod_proxy_http</module> enregistre les informations
140 suivantes pour journalisation via le format <code>%{NOMVAR}n</code>
141 dans les directives <directive
142 module="mod_log_config">LogFormat</directive> ou <directive
143 module="core">ErrorLogFormat</directive> :
146 <dt>proxy-source-port</dt>
147 <dd>Le port local utilisé pour la connexion vers le serveur
148 d'arrière-plan.</dd>
149 <dt>proxy-status</dt>
150 <dd>Le code d'état HTTP reçu du serveur d'arrière-plan.</dd>