1 <?xml version="1.0" encoding="UTF-8" ?>
2 <!DOCTYPE manualpage SYSTEM "./style/manualpage.dtd">
3 <?xml-stylesheet type="text/xsl" href="./style/manual.fr.xsl"?>
4 <!-- French translation : Lucien GENTIS -->
5 <!-- Reviewed by : Vincent Deffontaines -->
6 <!-- English Revision: 1816110 -->
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 <manualpage metafile="bind.xml.meta">
27 <title>Ecoute sélective</title>
30 <p>Configuration du serveur HTTP Apache pour l'écoute
31 sur un port et une adresse IP spécifiques.</p>
34 <seealso><a href="vhosts/">Hôtes virtuels</a></seealso>
35 <seealso><a href="dns-caveats.html">Problèmes liés à DNS</a></seealso>
37 <section id="overview">
38 <title>Vue d'ensemble</title>
43 <module>mpm_common</module>
46 <directive module="core" type="section">VirtualHost</directive>
47 <directive module="mpm_common">Listen</directive>
52 <p>Au démarrage de httpd, un port et une adresse lui sont associés sur
53 l'hôte local et le serveur se met en attente de l'arrivée d'une requête.
54 Par défaut, le serveur écoute toutes les adresses de l'hôte local.
55 Cependant, on peut lui préciser des ports et des adresses spécifiques à écouter,
56 ou une combinaison des deux.
57 Tout ceci est souvent associé avec la fonctionnalité
58 des <a href="vhosts/">hôtes virtuels</a>
59 qui détermine la manière dont <code>httpd</code> répond aux différents ports,
60 noms d'hôtes et adresses IP.</p>
62 <p>La directive <directive module="mpm_common">Listen</directive>
63 enjoint le serveur de n'accepter des requêtes que sur le(s)
65 une combinaison adresse/port. Si seul un numéro de port est spécifié
66 dans la directive <directive module="mpm_common">Listen</directive>,
67 le serveur se met à l'écoute sur ce port, sur toutes les interfaces réseau.
68 Si une adresse IP est spécifiée en plus du port, le serveur va écouter
69 sur ce port, uniquement sur l'interface réseau correspondante. On peut utiliser
70 de multiples directives
71 <directive module="mpm_common">Listen</directive> pour
72 spécifier plusieurs adresses et ports à écouter. Le serveur répondra alors
73 aux requêtes sur ces ports et adresses spécifiés.</p>
75 <p>Par exemple, pour faire en sorte que le serveur accepte des connexions
76 sur les ports 80 et 8000, sur toutes les interfaces, utilisez :</p>
79 <highlight language="config">
85 <p>Pour faire en sorte que le serveur accepte des connexions sur le port 80
86 pour une interface, et sur le port 8000 pour une
87 autre interface, utilisez :</p>
90 <highlight language="config">
96 <p>Les adresses IPv6 doivent être mises entre crochets, comme dans
97 l'exemple suivant :</p>
100 <highlight language="config">
101 Listen [2001:db8::a00:20ff:fea7:ccea]:80
105 <note type="warning"><p>Des directives <directive
106 module="mpm_common">Listen</directive>
107 imbriquées provoqueront une erreur fatale qui
108 empêchera le serveur de démarrer.</p>
111 (48)Address already in use: make_sock: could not bind to address [::]:80
115 href="http://wiki.apache.org/httpd/CouldNotBindToAddress">cette
116 discussion dans le wiki</a> pour plus de conseils pour résoudre ce
123 <section id="reload">
124 <title>Changer la configuration de l'écoute au redémarrage</title>
126 <p>Lorsque httpd est redémarré, certaines remarques sont à prendre en compte
127 quant aux modifications apportées aux directives <directive
128 module="mpm_common">Listen</directive>. Au cours du redémarrage, httpd
129 conserve la liaison avec les ports de la configuration précédente afin
130 d'éviter l'obtention d'un message d'erreur "Connection refused" lors d'une
131 tentative ultérieure de connexion au serveur. Si les modifications apportées au jeu de
132 directives <directive module="mpm_common">Listen</directive> utilisé entrent
133 en conflit avec ce dernier, le serveur refusera de redémarrer.</p>
135 <p>Par exemple, modifier la configuration suivante :</p>
138 <highlight language="config">
143 <p>pour utiliser la suivante pourra échouer car écouter le port 80 sur
144 toutes les adresses IP entre en conflit avec une écoute sélective du port 80
145 sur la seule adresse IP 127.0.0.1.</p>
148 <highlight language="config">
153 <p>Pour qu'une telle modification de configuration soit prise en compte avec
154 succès, il est nécessaire d'arrêter, puis de démarrer le serveur.</p>
159 <title>Remarques spécifiques à IPv6</title>
161 <p>Un nombre croissant de plateformes implémentent IPv6, et
162 <glossary>APR</glossary> supporte IPv6 sur la plupart d'entre elles,
163 ce qui permet à httpd d'allouer des points de connexion (sockets) IPv6
164 et de traiter des requêtes envoyées sur IPv6.</p>
166 <p>Les administrateurs de httpd doivent se préoccuper de la possibilité
167 pour un point de connexion IPv6 de traiter à la fois des connexions IPv4
168 et des connexions IPv6.
169 Le traitement de connexions IPv4 avec un point de connexion IPv6 utilise
170 des adresses IPv6 traduites en IPv4, qui sont autorisées par défaut sur la
171 plupart des plateformes, mais sont interdites par défaut sous FreeBSD, NetBSD,
172 et OpenBSD, afin de respecter la politique de sécurité du système sur ces plateformes.
173 Sur les systèmes où ces adresses sont interdites par défaut, un
174 paramètre spécial du script <program>configure</program> permet de modifier
175 ce comportement pour httpd.</p>
177 <p>En revanche, sur certaines plateformes comme Linux et Tru64, la
178 <strong>seule</strong> manière de gérer à la fois IPv6 et IPv4 passe
179 par l'utilisation d'adresses traduites. Si vous voulez que <code>httpd</code> gère
180 des connexions IPv4 et IPv6 avec un minimum de points de connexion,
181 ce qui nécessite l'utilisation d'adresses IPv6 traduites en IPv4,
182 utilisez l'option <code>--enable-v4-mapped</code> du script <program>
183 configure</program>.</p>
185 <p>L'option <code>--enable-v4-mapped</code> est utilisée par défaut sur
186 toutes les plateformes sauf FreeBSD, NetBSD, et OpenBSD;
187 votre httpd a donc probablement été construit avec cette option.</p>
189 <p>Si vous souhaitez que httpd ne gère que des connexions IPv4, sans se
190 soucier de ce que vos plateforme et APR supportent, spécifiez une adresse
191 IPv4 dans toutes les directives
192 <directive module="mpm_common">Listen</directive>, comme dans l'exemple
196 <highlight language="config">
202 <p>Si votre plateforme le supporte et si vous souhaitez que httpd gère
203 des connexions IPv4 et IPv6 sur des points de connexion séparés
204 (c'est à dire désactiver la traduction des adresses IPv6 au format IPv4),
205 utilisez l'option <code>--disable-v4-mapped</code> du script
206 <program> configure</program>. <code>--disable-v4-mapped</code> est
207 utilisé par défaut sur FreeBSD, NetBSD, et OpenBSD.</p>
210 <section id="protocol">
211 <title>Spécification du protocole avec Listen</title>
212 <p>Dans la plupart des configurations, le second paramètre optionnel
213 <var>protocol</var> de la directive <directive
214 module="mpm_common">Listen</directive> n'est pas obligatoire. S'il
215 n'est pas spécifié, les protocoles par défaut
216 sont <code>https</code> pour le port 443, et <code>http</code> pour
217 tous les autres ports. Le protocole sert à déterminer quel module
218 doit traiter une requête, et à appliquer les optimisations
219 spécifiques au protocole via la directive <directive
220 module="core">AcceptFilter</directive>.</p>
222 <p>Vous ne devez définir le protocole que si vous travaillez avec
223 des ports non standards. Par exemple, pour travailler en
224 <code>https</code> sur le port 8443 :</p>
227 <highlight language="config">
228 Listen 192.170.2.1:8443 https
233 <section id="virtualhost">
234 <title>Comment tout ceci fonctionne-t-il avec les hôtes virtuels</title>
236 <p> La directive <directive
237 module="mpm_common">Listen</directive> n'implémente pas les hôtes virtuels.
238 Elle indique simplement au serveur principal sur quels adresses et ports
239 il doit écouter. Si aucune directive
240 <directive module="core" type="section">VirtualHost</directive>
241 n'est présente, le serveur se comportera de la même façon pour toutes
242 les requêtes acceptées. En revanche, la directive
243 <directive module="core" type="section">VirtualHost</directive>
244 peut être utilisée pour provoquer une réaction différente du serveur
245 pour un ou plusieurs adresses ou ports. Pour implémenter un hôte virtuel,
246 on doit d'abord indiquer au serveur sur quels adresses et ports il doit écouter.
248 <directive module="core" type="section">VirtualHost</directive>
249 doit être créée pour le couple adresse+port spécifié afin de définir le
250 comportement de cet hôte virtuel. Notez que si la directive
251 <directive module="core" type="section">VirtualHost</directive>
252 est définie pour une adresse et un port sur lesquels le serveur n'est pas censé
253 écouter, cet hôte virtuel ne sera pas accessible.</p>