1 <?xml version="1.0" encoding="ISO-8859-1"?>
2 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
3 <html xmlns="http://www.w3.org/1999/xhtml" lang="fr" xml:lang="fr"><head><!--
4 XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
5 This file is generated from xml source: DO NOT EDIT
6 XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
8 <title>Support Apache des serveurs virtuels par nom - Serveur Apache HTTP</title>
9 <link href="../style/css/manual.css" rel="stylesheet" media="all" type="text/css" title="Main stylesheet" />
10 <link href="../style/css/manual-loose-100pc.css" rel="alternate stylesheet" media="all" type="text/css" title="No Sidebar - Default font size" />
11 <link href="../style/css/manual-print.css" rel="stylesheet" media="print" type="text/css" />
12 <link href="../images/favicon.ico" rel="shortcut icon" /></head>
13 <body id="manual-page"><div id="page-header">
14 <p class="menu"><a href="../mod/">Modules</a> | <a href="../mod/directives.html">Directives</a> | <a href="../faq/">FAQ</a> | <a href="../glossary.html">Glossaire</a> | <a href="../sitemap.html">Plan du site</a></p>
15 <p class="apache">Serveur Apache HTTP Version 2.3</p>
16 <img alt="" src="../images/feather.gif" /></div>
17 <div class="up"><a href="./"><img title="<-" alt="<-" src="../images/left.gif" /></a></div>
19 <a href="http://www.apache.org/">Apache</a> > <a href="http://httpd.apache.org/">Serveur HTTP</a> > <a href="http://httpd.apache.org/docs/">Documentation</a> > <a href="../">Version 2.3</a> > <a href="./">Serveurs virtuels</a></div><div id="page-content"><div id="preamble"><h1>Support Apache des serveurs virtuels par nom</h1>
21 <p><span>Langues Disponibles: </span><a href="../de/vhosts/name-based.html" hreflang="de" rel="alternate" title="Deutsch"> de </a> |
22 <a href="../en/vhosts/name-based.html" hreflang="en" rel="alternate" title="English"> en </a> |
23 <a href="../fr/vhosts/name-based.html" title="Français"> fr </a> |
24 <a href="../ja/vhosts/name-based.html" hreflang="ja" rel="alternate" title="Japanese"> ja </a> |
25 <a href="../ko/vhosts/name-based.html" hreflang="ko" rel="alternate" title="Korean"> ko </a></p>
28 <p>Ce document décrit quand et comment utiliser des serveurs
31 <div id="quickview"><ul id="toc"><li><img alt="" src="../images/down.gif" /> <a href="#namevip">Serveurs virtuels par nom vs. par IP</a></li>
32 <li><img alt="" src="../images/down.gif" /> <a href="#using">Utilisation de serveurs virtuels par nom</a></li>
33 <li><img alt="" src="../images/down.gif" /> <a href="#compat">Compatibilité avec les navigateurs anciens</a></li>
34 </ul><h3>Voir aussi</h3><ul class="seealso"><li><a href="ip-based.html">Support Apache des serveurs virtuels par IP</a></li><li><a href="details.html">Détails sur le fonctionnement des serveurs virtuels</a></li><li><a href="mass.html">Configuration dynamique des hébergements virtuels de masse</a></li><li><a href="examples.html">Exemples d'utilisations de VirtualHost</a></li><li><a href="examples.html#serverpath">Utilisation de la directive ServerPath</a></li></ul></div>
35 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
37 <h2><a name="namevip" id="namevip">Serveurs virtuels par nom vs. par IP</a></h2>
39 <p>Les hébergements virtuels par IP utilisent l'adresse IP
40 de la connexion afin de déterminer quel serveur virtuel doit
41 répondre. Par conséquent, vous devez disposer d'adresses IP
42 différentes pour chaque nom de domaine complet (FQDN) que vous hébergez.
44 virtuel par nom, le serveur s'appuit sur les informations
45 transmises par le client dans les en-têtes HTTP de ses requêtes.
46 La technique présentée ici vous permet de disposer de serveurs
47 virtuels différents partagés sur une même adresse IP.</p>
49 <p>L'hébergement virtuel par nom est habituellement plus simple,
50 car il vous suffit de configurer votre serveur DNS pour que
51 chaque domaine pointe sur l'adresse IP dont vous disposez, et de
52 configurer votre serveur Apache HTTP afin qu'il reconnaisse
53 ces domaines. Il réduit aussi la pénurie en adresses IP. Par
54 conséquent, vous devriez utiliser l'hébergement virtuel par
55 nom à moins d'avoir une raison spécifique de préférer
56 l'hébergement virtuel par IP. Certaines de ces raisons vous
57 sont exposées ci-après :</p>
60 <li>Certains anciens navigateurs ne sont pas compatibles
61 avec les serveurs virtuels par nom, car pour fonctionner,
62 un client doit transmettre un champ d'en-tête HTTP Host.
63 Cet en-tête est exigé pour HTTP/1.1, et peut être implémenté
64 sur des navigateurs modernes HTTP/1.0 grâce à une extension.
65 Si vous devez maintenir des clients obsolètes tout en
66 utilisant l'hébergement virtuel par nom, il existe une
67 technique qui est traitée à la fin de ce document.</li>
69 <li>L'hébergement virtuel par nom ne peut pas être utilisé
70 avec des serveurs sécurisés SSL à cause de la nature même
71 du protocole SSL.</li>
73 <li>Certains systèmes d'exploitation et équipements réseaux
74 emploient des techniques de gestion de la bande passante
75 qui ne peuvent pas différencier des domaines autrement que
76 par des adresses IP séparées.</li>
79 </div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
81 <h2><a name="using" id="using">Utilisation de serveurs virtuels par nom</a></h2>
83 <table class="related"><tr><th>Modules Apparentés</th><th>Directives Apparentées</th></tr><tr><td><ul><li><code class="module"><a href="../mod/core.html">core</a></code></li></ul></td><td><ul><li><code class="directive"><a href="../mod/core.html#documentroot">DocumentRoot</a></code></li><li><code class="directive"><a href="../mod/core.html#namevirtualhost">NameVirtualHost</a></code></li><li><code class="directive"><a href="../mod/core.html#serveralias">ServerAlias</a></code></li><li><code class="directive"><a href="../mod/core.html#servername">ServerName</a></code></li><li><code class="directive"><a href="../mod/core.html#serverpath">ServerPath</a></code></li><li><code class="directive"><a href="../mod/core.html#virtualhost"><VirtualHost></a></code></li></ul></td></tr></table>
85 <p>Pour utiliser des serveurs virtuels par nom, vous devez
86 désigner l'adresse IP (et si possible le port) sur le serveur
87 devant accepter les requêtes pour des domaines. Cette
88 configuration utilise la directive
89 <code class="directive"><a href="../mod/core.html#namevirtualhost">NameVirtualHost</a></code>. Dans un
90 cas normal où n'importe quelle adresse IP peut être utilisée,
91 vous pouvez ajouter <code>*</code> comme argument de la directive
92 <code class="directive"><a href="../mod/core.html#namevirtualhost">NameVirtualHost</a></code>. Si vous
93 prévoyez d'utiliser de multiples ports (comme l'emploi de SSL),
94 vous devriez ajouter le port à cet argument tel que
95 <code>*:80</code>. Notez que la simple mention d'une adresse
97 <code class="directive"><a href="../mod/core.html#namevirtualhost">NameVirtualHost</a></code> ne suffit
98 pas à faire écouter le serveur sur cette IP. Consultez
99 <a href="../bind.html">la page sur les liaisons</a> pour plus
100 de détails. Par ailleurs, chaque adresse IP spécifiée ici doit
101 être associée avec une interface réseau sur le serveur.</p>
103 <p>L'étape suivante est la création d'une section
104 <code class="directive"><a href="../mod/core.html#virtualhost"><VirtualHost></a></code>
105 pour chacun des serveurs à créer. L'argument de la directive
106 <code class="directive"><a href="../mod/core.html#virtualhost"><VirtualHost></a></code>
107 doit être le même que celui de la directive
108 <code class="directive"><a href="../mod/core.html#namevirtualhost">NameVirtualHost</a></code>
109 (c'est-à-dire l'adresse IP ou <code>*</code> pour toutes les
110 adresses). Dans chaque section
111 <code class="directive"><a href="../mod/core.html#virtualhost"><VirtualHost></a></code>,
112 vous devez définir au minimum une directive
113 <code class="directive"><a href="../mod/core.html#servername">ServerName</a></code> pour désigner
114 le serveur concerné et une directive
115 <code class="directive"><a href="../mod/core.html#documentroot">DocumentRoot</a></code> pour préciser
116 l'emplacement sur le système de fichiers du contenu de ce serveur.</p>
118 <div class="note"><h3>Le serveur principal disparaît</h3>
119 <p>Si vous ajoutez des serveurs virtuels à un serveur Web
120 existant, vous devez également créer une section
121 <code class="directive"><a href="../mod/core.html#virtualhost"><VirtualHost></a></code>
122 redéfinissant ce serveur existant. Les directives
123 <code class="directive"><a href="../mod/core.html#servername">ServerName</a></code> et
124 <code class="directive"><a href="../mod/core.html#documentroot">DocumentRoot</a></code> incluses
125 dans ce serveur virtuel doivent être les mêmes que pour
126 les directives globales
127 <code class="directive"><a href="../mod/core.html#servername">ServerName</a></code> et
128 <code class="directive"><a href="../mod/core.html#documentroot">DocumentRoot</a></code>. Positionnez
129 ce serveur virtuel en premier dans le fichier de configuration
130 pour en faire le serveur par défaut.</p>
133 <p>Par exemple, supposez que vous hébergez le domaine
134 <code>www.domain.tld</code> et que vous souhaitez ajouter le
135 serveur virtuel <code>www.otherdomain.tld</code> qui pointe sur
136 la même adresse IP. Il vous suffit d'ajouter la configuration
137 suivante à <code>httpd.conf</code> :</p>
139 <div class="example"><p><code>
140 NameVirtualHost *:80<br />
142 <VirtualHost *:80><br />
143 <span class="indent">
144 ServerName www.domain.tld<br />
145 ServerAlias domain.tld *.domain.tld<br />
146 DocumentRoot /www/domain<br />
148 </VirtualHost><br />
150 <VirtualHost *:80><br />
151 <span class="indent">ServerName www.otherdomain.tld<br />
152 DocumentRoot /www/otherdomain<br />
154 </VirtualHost><br />
157 <p>Autrement, vous pouvez spécifiez une adresse IP explicite
158 à la place de <code>*</code> dans les deux directives
159 <code class="directive"><a href="../mod/core.html#namevirtualhost">NameVirtualHost</a></code> et
160 <code class="directive"><a href="../mod/core.html#virtualhost"><VirtualHost></a></code>.
161 Par exemple, cette méthode est utile si vous souhaitez faire
162 tourner quelques serveurs virtuels par nom sur une même adresse
163 IP, et d'autres, soit par IP, soit basés sur un autre jeu de
164 serveurs virtuels par nom sur une autre adresse IP.</p>
166 <p>Plusieurs serveurs sont accessibles par plus d'un nom. Il
167 suffit de placer la directive
168 <code class="directive"><a href="../mod/core.html#serveralias">ServerAlias</a></code> dans une section
169 <code class="directive"><a href="../mod/core.html#virtualhost"><VirtualHost></a></code>.
170 Par exemple, dans la première section
171 <code class="directive"><a href="../mod/core.html#virtualhost"><VirtualHost></a></code>
172 ci-dessus, la directive <code class="directive"><a href="../mod/core.html#serveralias">ServerAlias</a></code>
173 indique aux utilisateurs les autres noms permis pour accéder au
174 même site Web :</p>
176 <div class="example"><p><code>
177 ServerAlias domain.tld *.domain.tld
180 <p>ainsi, toutes les requêtes portant sur un domaine
181 <code>domain.tld</code> seront servies par le serveur virtuel
182 <code>www.domain.tld</code>. Les caractères joker <code>*</code>
183 et <code>?</code> peuvent être utilisés pour les correspondances.
184 Bien entendu, vous ne pouvez pas inventer des noms et les placer
185 dans une directive <code class="directive"><a href="../mod/core.html#servername">ServerName</a></code>
186 ou <code>ServerAlias</code>. Tout d'abord, votre serveur DNS
187 doit être correctement configuré pour lier ces noms à une
188 adresse IP associée avec votre serveur.</p>
190 <p>Finalement, vous pouvez affiner la configuration des serveurs
191 virtuels en plaçant d'autres directives à l'intérieur des sections
192 <code class="directive"><a href="../mod/core.html#virtualhost"><VirtualHost></a></code>.
193 La plupart des directives peut être placée dans ces sections en
194 y changeant seulement la configuration du serveur virtuel associé.
195 Pour déterminer si une directive particulière est permise,
196 consultez <a href="../mod/directive-dict.html#Context">la page de
197 contexte</a>. Le jeu de directives configurées dans le contexte
198 du <em>serveur principal</em> (en dehors de toutes sections
199 <code class="directive"><a href="../mod/core.html#virtualhost"><VirtualHost></a></code>)
200 sera utilisé seulement s'il n'y a pas de configuration contraire
201 par un serveur virtuel.</p>
203 <p>Maintenant, lorsqu'une requête arrive, le serveur va d'abord
204 tester si elle utilise une adresse IP qui correspond à
205 <code class="directive"><a href="../mod/core.html#namevirtualhost">NameVirtualHost</a></code>. Si c'est
206 le cas, il regardera chaque section
207 <code class="directive"><a href="../mod/core.html#virtualhost"><VirtualHost></a></code>
208 avec l'adresse correspondante et essaiera d'en trouver une où
209 le nom de domaine requis correspond à
210 <code class="directive"><a href="../mod/core.html#servername">ServerName</a></code> ou
211 <code>ServerAlias</code>. S'il en trouve une, il utilisera
212 sa configuration pour le serveur. Si aucun serveur virtuel ne
213 correspond, alors <em>le premier serveur virtuel listé</em>
214 dont l'adresse IP correspond sera employé.</p>
216 <p>En conséquence, le premier serveur virtuel listé est le
217 serveur virtuel <em>default</em>. La directive
218 <code class="directive"><a href="../mod/core.html#documentroot">DocumentRoot</a></code> du
219 <em>serveur principal</em> <strong>ne</strong> sera
220 <strong>jamais</strong> employée lorsqu'une adresse IP
221 correspond dans une directive
222 <code class="directive"><a href="../mod/core.html#namevirtualhost">NameVirtualHost</a></code>. Si vous
223 ne voulez pas avoir de configuration spéciale pour les requêtes
224 qui ne sont pas attachées à un serveur virtuel en particulier,
225 mettez cette configuration dans une section
226 <code class="directive"><a href="../mod/core.html#virtualhost"><VirtualHost></a></code>
227 que vous placerez en premier dans le fichier de configuration.</p>
229 </div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
230 <div class="section">
231 <h2><a name="compat" id="compat">Compatibilité avec les navigateurs anciens</a></h2>
233 <p>Comme mentionné plus tôt, certains clients ne transmettent
234 pas les données nécessaires pour le bon fonctionnement des
235 serveurs virtuels. Ces clients recevront toujours les pages
236 du premier serveur virtuel listé pour cette adresse IP (le
237 serveur virtuel par nom <cite>primaire</cite>).</p>
239 <div class="note"><h3>De combien plus anciens ?</h3>
240 <p>Veuillez noter que quand nous disons plus anciens, nous
241 disons vraiment plus anciens. Vous seriez malchanceux de rencontrer
242 de tels navigateurs encore utilisés de nos jours. Toutes les
243 versions actuelles des navigateurs transmettent leur en-tête
244 <code>Host</code> comme exigé par les serveurs virtuels par nom.</p>
247 <p>Il existe une solution avec la directive
248 <code class="directive"><a href="../mod/core.html#serverpath">ServerPath</a></code>, bien que
249 légèrement complexe :</p>
251 <p>Exemple de configuration :</p>
253 <div class="example"><p><code>
254 NameVirtualHost 111.22.33.44<br />
256 <VirtualHost 111.22.33.44><br />
257 <span class="indent">
258 ServerName www.domain.tld<br />
259 ServerPath /domain<br />
260 DocumentRoot /web/domain<br />
262 </VirtualHost><br />
265 <p>Qu'est-ce que cela signifie ? Il signifie qu'une requête
266 pour tout URI qui commence par "<code>/domain</code>" sera
267 servie par le serveur virtuel <code>www.domain.tld</code>.
268 Ainsi, les pages sont accessibles à
269 <code>http://www.domain.tld/domain/</code> pour tous les
270 clients, bien que ceux qui transmettent un en-tête
271 <code>Host:</code> peuvent également y accéder à
272 <code>http://www.domain.tld/</code>.</p>
274 <p>Pour rendre cette technique fonctionnelle, mettez un lien
275 dans votre serveur virtuel primaire vers
276 <code>http://www.domain.tld/domain/</code>. Ensuite, dans les
277 pages de ce serveur virtuel, assurez vous ne n'utiliser que
278 des liens relatifs (<em>par exemple</em>, "<code>file.html</code>"
279 ou "<code>../icons/image.gif</code>") ou des liens contenant
280 le préfixe <code>/domain/</code> (<em>par exemple</em>,
281 "<code>http://www.domain.tld/domain/misc/file.html</code>"
282 ou "<code>/domain/misc/file.html</code>").</p>
284 <p>Cela requiert un peu de discipline, mais si vous suivez
285 cette ligne de conduite, vous serez assuré que vos pages
286 s'afficheront dans tous les navigateurs, nouveaux et anciens.</p>
289 <div class="bottomlang">
290 <p><span>Langues Disponibles: </span><a href="../de/vhosts/name-based.html" hreflang="de" rel="alternate" title="Deutsch"> de </a> |
291 <a href="../en/vhosts/name-based.html" hreflang="en" rel="alternate" title="English"> en </a> |
292 <a href="../fr/vhosts/name-based.html" title="Français"> fr </a> |
293 <a href="../ja/vhosts/name-based.html" hreflang="ja" rel="alternate" title="Japanese"> ja </a> |
294 <a href="../ko/vhosts/name-based.html" hreflang="ko" rel="alternate" title="Korean"> ko </a></p>
295 </div><div id="footer">
296 <p class="apache">Copyright 1995-2006 The Apache Software Foundation or its licensors, as applicable.<br />Authorisé sous <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache License, Version 2.0</a>.</p>
297 <p class="menu"><a href="../mod/">Modules</a> | <a href="../mod/directives.html">Directives</a> | <a href="../faq/">FAQ</a> | <a href="../glossary.html">Glossaire</a> | <a href="../sitemap.html">Plan du site</a></p></div>