switch to a 60 bit hash
[httpd-crcsyncproxy.git] / docs / manual / vhosts / examples.html.fr
blobd0ed6974a78e9fd515f3016e0fa14d04e104b254
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
7 -->
8 <title>Exemples d'utilisations de VirtualHost - 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="&lt;-" alt="&lt;-" src="../images/left.gif" /></a></div>
18 <div id="path">
19 <a href="http://www.apache.org/">Apache</a> &gt; <a href="http://httpd.apache.org/">Serveur HTTP</a> &gt; <a href="http://httpd.apache.org/docs/">Documentation</a> &gt; <a href="../">Version 2.3</a> &gt; <a href="./">Serveurs virtuels</a></div><div id="page-content"><div id="preamble"><h1>Exemples d'utilisations de VirtualHost</h1>
20 <div class="toplang">
21 <p><span>Langues Disponibles: </span><a href="../en/vhosts/examples.html" hreflang="en" rel="alternate" title="English">&nbsp;en&nbsp;</a> |
22 <a href="../fr/vhosts/examples.html" title="Français">&nbsp;fr&nbsp;</a> |
23 <a href="../ja/vhosts/examples.html" hreflang="ja" rel="alternate" title="Japanese">&nbsp;ja&nbsp;</a> |
24 <a href="../ko/vhosts/examples.html" hreflang="ko" rel="alternate" title="Korean">&nbsp;ko&nbsp;</a> |
25 <a href="../tr/vhosts/examples.html" hreflang="tr" rel="alternate" title="Türkçe">&nbsp;tr&nbsp;</a></p>
26 </div>
29 <p>Le but de ce document est d'essayer de répondre aux questions
30 les plus répandues sur la configuration des serveurs virtuels.
31 Les scénarios présentés ici se rencontrent quand plusieurs
32 serveurs Webs doivent tourner sur une seule et même machine au
33 moyen de serveurs virtuels <a href="name-based.html">par nom</a>
34 ou <a href="ip-based.html">par IP</a>.</p>
36 </div>
37 <div id="quickview"><ul id="toc"><li><img alt="" src="../images/down.gif" /> <a href="#purename">Fonctionnement de plusieurs serveurs
38 virtuels par nom sur une seule adresse IP.</a></li>
39 <li><img alt="" src="../images/down.gif" /> <a href="#twoips">Serveurs virtuels par nom sur plus
40 d'une seule adresse IP.</a></li>
41 <li><img alt="" src="../images/down.gif" /> <a href="#intraextra">Servir le même contenu sur des
42 adresses IP différentes (telle qu'une adresse interne et une
43 externe).</a></li>
44 <li><img alt="" src="../images/down.gif" /> <a href="#port">Servir différents sites sur différents
45 ports.</a></li>
46 <li><img alt="" src="../images/down.gif" /> <a href="#ip">Hébergement virtuel basé sur IP</a></li>
47 <li><img alt="" src="../images/down.gif" /> <a href="#ipport">Hébergements virtuels mixtes basés sur
48 les ports et sur les IP</a></li>
49 <li><img alt="" src="../images/down.gif" /> <a href="#mixed">Hébergements virtuels mixtes basé sur
50 les noms et sur IP</a></li>
51 <li><img alt="" src="../images/down.gif" /> <a href="#proxy">Utilisation simultanée de
52 <code>Virtual_host</code> et de mod_proxy</a></li>
53 <li><img alt="" src="../images/down.gif" /> <a href="#default">Utilisation de serveurs virtuels
54 <code>_default_</code></a></li>
55 <li><img alt="" src="../images/down.gif" /> <a href="#migrate">Migration d'un serveur virtuel
56 par nom en un serveur virtuel par IP</a></li>
57 <li><img alt="" src="../images/down.gif" /> <a href="#serverpath">Utilisation de la directive
58 <code>ServerPath</code></a></li>
59 </ul></div>
60 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
61 <div class="section">
62 <h2><a name="purename" id="purename">Fonctionnement de plusieurs serveurs
63 virtuels par nom sur une seule adresse IP.</a></h2>
65 <p>Votre serveur ne dispose que d'une seule adresse IP, et de
66 nombreux alias (CNAMES) pointent vers cette adresse dans le DNS.
67 Pour l'exemple, <code>www.example1.com</code> et
68 <code>www.example2.org</code> doivent tourner sur cette machine.</p>
70 <div class="note"><h3>Note&nbsp;:</h3><p>La configuration de serveurs virtuels
71 sous Apache ne provoque pas leur apparition magique dans la
72 configuration du DNS. Il <em>faut</em> que leurs noms soient
73 définis dans le DNS, et qu'ils y soient résolus sur l'adresse IP
74 du serveur, faute de quoi personne ne pourra visiter votre site Web.
75 Il est possible d'ajouter des entrées dans le fichier
76 <code>hosts</code> pour tests locaux, mais qui ne fonctionneront
77 que sur la machine possédant ces entrées.</p>
78 </div>
80 <div class="example"><h3>Configuration du serveur</h3><p><code>
83 # Apache doit écouter sur le port 80<br />
84 Listen 80<br />
85 <br />
86 # Toutes les adresses IP doivent répondre aux requêtes sur les
87 # serveurs virtuels
88 NameVirtualHost *:80<br />
89 <br />
90 &lt;VirtualHost *:80&gt;<br />
91 <span class="indent">
92 DocumentRoot /www/example1<br />
93 ServerName www.example1.com<br />
94 <br />
95 # Autres directives ici<br />
96 <br />
97 </span>
98 &lt;/VirtualHost&gt;<br />
99 <br />
100 &lt;VirtualHost *:80&gt;<br />
101 <span class="indent">
102 DocumentRoot /www/example2<br />
103 ServerName www.example2.org<br />
104 <br />
105 # Autres directives ici<br />
106 <br />
107 </span>
108 &lt;/VirtualHost&gt;
109 </code></p></div>
111 <p>Les astérisques correspondent à toutes les adresses, si bien que
112 le serveur principal ne répondra jamais à aucune requête. Comme
113 <code>www.example1.com</code> se trouve en premier dans le fichier
114 de configuration, il a la plus grande priorité et peut être vu
115 comme serveur <cite>par défaut</cite> ou <cite>primaire</cite>&nbsp;;
116 ce qui signifie que toute requête reçue ne correspondant pas à une
117 des directives <code>ServerName</code> sera servie par ce premier
118 <code>VirtualHost</code>.</p>
120 <div class="note">
121 <h3>Note&nbsp;:</h3>
123 <p>Si vous le souhaitez, vous pouvez remplacer <code>*</code>
124 par l'adresse IP du système. Dans ce cas, l'argument de
125 <code>VirtualHost</code> <em>doit</em> correspondre à
126 l'argument de <code>NameVirtualHost</code>&nbsp;:</p>
128 <div class="example"><p><code>
129 NameVirtualHost 172.20.30.40<br />
130 <br />
131 &lt;VirtualHost 172.20.30.40&gt;<br />
132 # etc ...
133 </code></p></div>
135 <p>En général, il est commode d'utiliser <code>*</code> sur
136 les systèmes dont l'adresse IP n'est pas constante - par
137 exemple, pour des serveurs dont l'adresse IP est attribuée
138 dynamiquement par le FAI, et où le DNS est géré au moyen
139 d'un DNS dynamique quelconque. Comme <code>*</code> signifie
140 <cite>n'importe quelle adresse</cite>, cette configuration
141 fonctionne sans devoir être modifiée quand l'adresse IP du
142 système est modifiée.</p>
143 </div>
145 <p>La configuration ci-dessus est en pratique utilisée dans la
146 plupart des cas pour les serveurs virtuels par nom. En fait, le
147 seul cas où cette configuration ne fonctionne pas est lorsque
148 différents contenus doivent être servis en fonction de l'adresse IP
149 et du port contactés par le client.</p>
151 </div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
152 <div class="section">
153 <h2><a name="twoips" id="twoips">Serveurs virtuels par nom sur plus
154 d'une seule adresse IP.</a></h2>
156 <div class="note">
157 <h3>Note&nbsp;:</h3>
158 <p>Toutes les techniques présentées ici
159 peuvent être étendues à un plus grand nombre d'adresses IP.</p>
160 </div>
162 <p>Le serveur a deux adresses IP. Sur l'une
163 (<code>172.20.30.40</code>), le serveur "principal"
164 <code>server.domain.com</code> doit répondre, et sur l'autre
165 (<code>172.20.30.50</code>), deux serveurs virtuels (ou plus)
166 répondront.</p>
168 <div class="example"><h3>Configuration du serveur</h3><p><code>
171 Listen 80<br />
172 <br />
173 # Serveur "principal" sur 172.20.30.40<br />
174 ServerName server.domain.com<br />
175 DocumentRoot /www/mainserver<br />
176 <br />
177 # l'autre adresse <br />
178 NameVirtualHost 172.20.30.50<br />
179 <br />
180 &lt;VirtualHost 172.20.30.50&gt;<br />
181 <span class="indent">
182 DocumentRoot /www/example1<br />
183 ServerName www.example1.com<br />
184 <br />
185 # D'autres directives ici ...<br />
186 <br />
187 </span>
188 &lt;/VirtualHost&gt;<br />
189 <br />
190 &lt;VirtualHost 172.20.30.50&gt;<br />
191 <span class="indent">
192 DocumentRoot /www/example2<br />
193 ServerName www.example2.org<br />
194 <br />
195 # D'autres directives ici ...<br />
196 <br />
197 </span>
198 &lt;/VirtualHost&gt;
199 </code></p></div>
201 <p>Toute requête arrivant sur une autre adresse que
202 <code>172.20.30.50</code> sera servie par le serveur principal.
203 Les requêtes vers <code>172.20.30.50</code> avec un nom de serveur
204 inconnu, ou sans en-tête <code>Host:</code>, seront servies par
205 <code>www.example1.com</code>.</p>
207 </div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
208 <div class="section">
209 <h2><a name="intraextra" id="intraextra">Servir le même contenu sur des
210 adresses IP différentes (telle qu'une adresse interne et une
211 externe).</a></h2>
213 <p>La machine serveur dispose de deux adresses IP
214 (<code>192.168.1.1</code> et <code>172.20.30.40</code>). Cette
215 machine est placée à la fois sur le réseau interne (l'Intranet)
216 et le réseau externe (Internet). Sur Internet, le nom
217 <code>server.example.com</code> pointe vers l'adresse externe
218 (<code>172.20.30.40</code>), mais sur le réseau interne, ce même
219 nom pointe vers l'adresse interne (<code>192.168.1.1</code>).</p>
221 <p>Le serveur peut être configuré pour répondre de la même manière
222 aux requêtes internes et externes, au moyen d'une seule section
223 <code>VirtualHost</code>.</p>
225 <div class="example"><h3>Configuration du serveur</h3><p><code>
228 NameVirtualHost 192.168.1.1<br />
229 NameVirtualHost 172.20.30.40<br />
230 <br />
231 &lt;VirtualHost 192.168.1.1 172.20.30.40&gt;<br />
232 <span class="indent">
233 DocumentRoot /www/server1<br />
234 ServerName server.example.com<br />
235 ServerAlias server<br />
236 </span>
237 &lt;/VirtualHost&gt;
238 </code></p></div>
240 <p>Ainsi, les requêtes en provenance de chacun des deux réseaux
241 seront servies par le même <code>VirtualHost</code>.</p>
243 <div class="note">
244 <h3>Note&nbsp;:</h3><p>Sur le réseau interne, il est possible
245 d'utiliser le nom raccourci <code>server</code> au lieu du nom
246 complet <code>server.example.com</code>.</p>
248 <p>Notez également que dans l'exemple précédent, vous pouvez
249 remplacer la liste des adresses IP par des <code>*</code> afin
250 que le serveur réponde de la même manière sur toutes ses
251 adresses.</p>
252 </div>
254 </div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
255 <div class="section">
256 <h2><a name="port" id="port">Servir différents sites sur différents
257 ports.</a></h2>
259 <p>Vous disposez de plusieurs domaines pointant sur la même adresse
260 IP et vous voulez également servir de multiples ports. Vous y
261 parviendrez en définissant les ports dans la directive
262 "NameVirtualHost". Si vous tentez d'utiliser &lt;VirtualHost
263 name:port&gt; sans directive NameVirtualHost name:port, ou tentez
264 d'utiliser la directive Listen, votre configuration ne fonctionnera
265 pas.</p>
267 <div class="example"><h3>Configuration du serveur</h3><p><code>
270 Listen 80<br />
271 Listen 8080<br />
272 <br />
273 NameVirtualHost 172.20.30.40:80<br />
274 NameVirtualHost 172.20.30.40:8080<br />
275 <br />
276 &lt;VirtualHost 172.20.30.40:80&gt;<br />
277 <span class="indent">
278 ServerName www.example1.com<br />
279 DocumentRoot /www/domain-80<br />
280 </span>
281 &lt;/VirtualHost&gt;<br />
282 <br />
283 &lt;VirtualHost 172.20.30.40:8080&gt;<br />
284 <span class="indent">
285 ServerName www.example1.com<br />
286 DocumentRoot /www/domain-8080<br />
287 </span>
288 &lt;/VirtualHost&gt;<br />
289 <br />
290 &lt;VirtualHost 172.20.30.40:80&gt;<br />
291 <span class="indent">
292 ServerName www.example2.org<br />
293 DocumentRoot /www/otherdomain-80<br />
294 </span>
295 &lt;/VirtualHost&gt;<br />
296 <br />
297 &lt;VirtualHost 172.20.30.40:8080&gt;<br />
298 <span class="indent">
299 ServerName www.example2.org<br />
300 DocumentRoot /www/otherdomain-8080<br />
301 </span>
302 &lt;/VirtualHost&gt;
303 </code></p></div>
305 </div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
306 <div class="section">
307 <h2><a name="ip" id="ip">Hébergement virtuel basé sur IP</a></h2>
309 <p>Le serveur dispose de deux adresses IP (<code>172.20.30.40</code>
310 et <code>172.20.30.50</code>) correspondant respectivement aux noms
311 <code>www.example1.com</code> et <code>www.example2.org</code>.</p>
313 <div class="example"><h3>Configuration du serveur</h3><p><code>
316 Listen 80<br />
317 <br />
318 &lt;VirtualHost 172.20.30.40&gt;<br />
319 <span class="indent">
320 DocumentRoot /www/example1<br />
321 ServerName www.example1.com<br />
322 </span>
323 &lt;/VirtualHost&gt;<br />
324 <br />
325 &lt;VirtualHost 172.20.30.50&gt;<br />
326 <span class="indent">
327 DocumentRoot /www/example2<br />
328 ServerName www.example2.org<br />
329 </span>
330 &lt;/VirtualHost&gt;
331 </code></p></div>
333 <p>Les requêtes provenant d'adresses non spécifiées dans l'une des
334 directives <code>&lt;VirtualHost&gt;</code> (comme pour
335 <code>localhost</code> par exemple) seront dirigées vers le serveur
336 principal, s'il en existe un.</p>
338 </div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
339 <div class="section">
340 <h2><a name="ipport" id="ipport">Hébergements virtuels mixtes basés sur
341 les ports et sur les IP</a></h2>
343 <p>Le serveur dispose de deux adresses IP (<code>172.20.30.40</code>
344 et <code>172.20.30.50</code>) correspondant respectivement aux noms
345 <code>www.example1.com</code> et <code>www.example2.org</code>.
346 Pour chacun d'eux, nous voulons un hébergement sur les ports 80
347 et 8080.</p>
349 <div class="example"><h3>Configuration du serveur</h3><p><code>
352 Listen 172.20.30.40:80<br />
353 Listen 172.20.30.40:8080<br />
354 Listen 172.20.30.50:80<br />
355 Listen 172.20.30.50:8080<br />
356 <br />
357 &lt;VirtualHost 172.20.30.40:80&gt;<br />
358 <span class="indent">
359 DocumentRoot /www/example1-80<br />
360 ServerName www.example1.com<br />
361 </span>
362 &lt;/VirtualHost&gt;<br />
363 <br />
364 &lt;VirtualHost 172.20.30.40:8080&gt;<br />
365 <span class="indent">
366 DocumentRoot /www/example1-8080<br />
367 ServerName www.example1.com<br />
368 </span>
369 &lt;/VirtualHost&gt;<br />
370 <br />
371 &lt;VirtualHost 172.20.30.50:80&gt;<br />
372 <span class="indent">
373 DocumentRoot /www/example2-80<br />
374 ServerName www.example1.org<br />
375 </span>
376 &lt;/VirtualHost&gt;<br />
377 <br />
378 &lt;VirtualHost 172.20.30.50:8080&gt;<br />
379 <span class="indent">
380 DocumentRoot /www/example2-8080<br />
381 ServerName www.example2.org<br />
382 </span>
383 &lt;/VirtualHost&gt;
384 </code></p></div>
386 </div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
387 <div class="section">
388 <h2><a name="mixed" id="mixed">Hébergements virtuels mixtes basé sur
389 les noms et sur IP</a></h2>
391 <p>Pour certaines adresses, des serveurs virtuels seront définis
392 par nom, et pour d'autres, ils seront définis par IP.</p>
394 <div class="example"><h3>Configuration du serveur</h3><p><code>
397 Listen 80<br />
398 <br />
399 NameVirtualHost 172.20.30.40<br />
400 <br />
401 &lt;VirtualHost 172.20.30.40&gt;<br />
402 <span class="indent">
403 DocumentRoot /www/example1<br />
404 ServerName www.example1.com<br />
405 </span>
406 &lt;/VirtualHost&gt;<br />
407 <br />
408 &lt;VirtualHost 172.20.30.40&gt;<br />
409 <span class="indent">
410 DocumentRoot /www/example2<br />
411 ServerName www.example2.org<br />
412 </span>
413 &lt;/VirtualHost&gt;<br />
414 <br />
415 &lt;VirtualHost 172.20.30.40&gt;<br />
416 <span class="indent">
417 DocumentRoot /www/example3<br />
418 ServerName www.example3.net<br />
419 </span>
420 &lt;/VirtualHost&gt;<br />
421 <br />
422 # "par-IP"<br />
423 &lt;VirtualHost 172.20.30.50&gt;<br />
424 <span class="indent">
425 DocumentRoot /www/example4<br />
426 ServerName www.example4.edu<br />
427 </span>
428 &lt;/VirtualHost&gt;<br />
429 <br />
430 &lt;VirtualHost 172.20.30.60&gt;<br />
431 <span class="indent">
432 DocumentRoot /www/example5<br />
433 ServerName www.example5.gov<br />
434 </span>
435 &lt;/VirtualHost&gt;
436 </code></p></div>
438 </div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
439 <div class="section">
440 <h2><a name="proxy" id="proxy">Utilisation simultanée de
441 <code>Virtual_host</code> et de mod_proxy</a></h2>
443 <p>L'exemple suivant montre comment une machine peut mandater
444 un serveur virtuel fonctionnant sur le serveur d'une autre machine.
445 Dans cet exemple, un serveur virtuel de même nom est configuré sur
446 une machine à l'adresse <code>192.168.111.2</code>. La directive
447 <code class="directive"><a href="../mod/mod_proxy.html#proxypreservehost on">ProxyPreserveHost On</a></code> est
448 employée pour permette au nom de domaine d'être préservé lors du
449 transfert, au cas où plusieurs noms de domaines cohabitent sur
450 une même machine.</p>
452 <div class="example"><p><code>
453 &lt;VirtualHost *:*&gt;<br />
454 ProxyPreserveHost On<br />
455 ProxyPass / http://192.168.111.2/<br />
456 ProxyPassReverse / http://192.168.111.2/<br />
457 ServerName hostname.example.com<br />
458 &lt;/VirtualHost&gt;
459 </code></p></div>
461 </div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
462 <div class="section">
463 <h2><a name="default" id="default">Utilisation de serveurs virtuels
464 <code>_default_</code></a></h2>
466 <h3><a name="defaultallports" id="defaultallports">Serveurs virtuels
467 <code>_default_</code> pour tous les ports</a></h3>
469 <p>Exemple de capture de <em>toutes</em> les requêtes émanant
470 d'adresses IP ou de ports non connus, <em>c'est-à-dire</em>, d'un
471 couple adresse/port non traité par aucun autre serveur virtuel.</p>
473 <div class="example"><h3>Configuration du serveur</h3><p><code>
476 &lt;VirtualHost _default_:*&gt;<br />
477 <span class="indent">
478 DocumentRoot /www/default<br />
479 </span>
480 &lt;/VirtualHost&gt;
481 </code></p></div>
483 <p>L'utilisation d'un tel serveur virtuel avec un joker pour le
484 port empêche de manière efficace qu'une requête n'atteigne le
485 serveur principal.</p>
487 <p>Un serveur virtuel par défaut ne servira jamais une requête
488 qui est envoyée vers un couple adresse/port utilisée par un
489 serveur virtuel par nom. Si la requête contient un en-tête
490 <code>Host:</code> inconnu, ou si celui-ci est absent, elle
491 sera toujours servie par le serveur virtuel primaire par nom
492 (celui correspondant à ce couple adresse/port trouvé en premier
493 dans le fichier de configuration).</p>
495 <p>Vous pouvez utiliser une directive
496 <code class="directive"><a href="../mod/mod_alias.html#aliasmatch">AliasMatch</a></code> ou
497 <code class="directive"><a href="../mod/mod_rewrite.html#rewriterule">RewriteRule</a></code> afin de
498 réécrire une requête pour une unique page d'information (ou pour
499 un script).</p>
502 <h3><a name="defaultdifferentports" id="defaultdifferentports">Serveurs virtuels
503 <code>_default_</code> pour des ports différents</a></h3>
505 <p>La configuration est similaire à l'exemple précédent, mais
506 le serveur écoute sur plusieurs ports et un second serveur virtuel
507 <code>_default_</code> pour le port 80 est ajouté.</p>
509 <div class="example"><h3>Configuration du serveur</h3><p><code>
512 &lt;VirtualHost _default_:80&gt;<br />
513 <span class="indent">
514 DocumentRoot /www/default80<br />
515 # ...<br />
516 </span>
517 &lt;/VirtualHost&gt;<br />
518 <br />
519 &lt;VirtualHost _default_:*&gt;<br />
520 <span class="indent">
521 DocumentRoot /www/default<br />
522 # ...<br />
523 </span>
524 &lt;/VirtualHost&gt;
525 </code></p></div>
527 <p>Le serveur virtuel par défaut défini pour le port 80 (il doit
528 impérativement être placé avant un autre serveur virtuel par
529 défaut traitant tous les ports grâce au joker *) capture toutes
530 les requêtes envoyées sur une adresse IP non spécifiée. Le
531 serveur principal n'est jamais utilisé pour servir une requête.</p>
534 <h3><a name="defaultoneport" id="defaultoneport">Serveurs virtuels
535 <code>_default_</code> pour un seul port</a></h3>
537 <p>Nous voulons créer un serveur virtuel par défaut seulement
538 pour le port 80.</p>
540 <div class="example"><h3>Configuration du serveur</h3><p><code>
543 &lt;VirtualHost _default_:80&gt;<br />
544 DocumentRoot /www/default<br />
545 ...<br />
546 &lt;/VirtualHost&gt;
547 </code></p></div>
549 <p>Une requête vers une adresse non spécifiée sur le port 80
550 sera servie par le serveur virtuel par défaut, et toute autre
551 requête vers une adresse et un port non spécifiés sera servie
552 par le serveur principal.</p>
555 </div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
556 <div class="section">
557 <h2><a name="migrate" id="migrate">Migration d'un serveur virtuel
558 par nom en un serveur virtuel par IP</a></h2>
560 <p>Le serveur virtuel par nom avec le nom de domaine
561 <code>www.example2.org</code> (de notre <a href="#name">exemple
562 par nom</a>) devrait obtenir sa propre adresse IP. Pendant la
563 phase de migration, il est possible d'éviter les problèmes avec
564 les noms de serveurs et autres serveurs mandataires qui mémorisent
565 les vielles adresses IP pour les serveurs virtuels par nom.<br />
566 La solution est simple, car il suffit d'ajouter la nouvelle
567 adresse IP (<code>172.20.30.50</code>) dans la directive
568 <code>VirtualHost</code>.</p>
570 <div class="example"><h3>Configuration du serveur</h3><p><code>
573 Listen 80<br />
574 ServerName www.example1.com<br />
575 DocumentRoot /www/example1<br />
576 <br />
577 NameVirtualHost 172.20.30.40<br />
578 <br />
579 &lt;VirtualHost 172.20.30.40 172.20.30.50&gt;<br />
580 <span class="indent">
581 DocumentRoot /www/example2<br />
582 ServerName www.example2.org<br />
583 # ...<br />
584 </span>
585 &lt;/VirtualHost&gt;<br />
586 <br />
587 &lt;VirtualHost 172.20.30.40&gt;<br />
588 <span class="indent">
589 DocumentRoot /www/example3<br />
590 ServerName www.example3.net<br />
591 ServerAlias *.example3.net<br />
592 # ...<br />
593 </span>
594 &lt;/VirtualHost&gt;
595 </code></p></div>
597 <p>Le serveur virtuel peut maintenant être joint par la nouvelle
598 adresse (comme un serveur virtuel par IP) et par l'ancienne
599 adresse (comme un serveur virtuel par nom).</p>
601 </div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
602 <div class="section">
603 <h2><a name="serverpath" id="serverpath">Utilisation de la directive
604 <code>ServerPath</code></a></h2>
606 <p>Dans le cas où vous disposez de deux serveurs virtuels par nom,
607 le client doit transmettre un en-tête <code>Host:</code> correct
608 pour déterminer le serveur concerné. Les vieux clients HTTP/1.0
609 n'envoient pas un tel en-tête et Apache n'a aucun indice pour
610 connaître le serveur virtuel devant être joint (il sert la
611 requête à partir d'un serveur virtuel primaire). Dans un soucis
612 de préserver la compatibilité descendante, il suffit de créer
613 un serveur virtuel primaire chargé de retourner une page contenant
614 des liens dont les URLs auront un préfixe identifiant les serveurs
615 virtuels par nom.</p>
617 <div class="example"><h3>Configuration du serveur</h3><p><code>
620 NameVirtualHost 172.20.30.40<br />
621 <br />
622 &lt;VirtualHost 172.20.30.40&gt;<br />
623 <span class="indent">
624 # Serveur virtuel primaire<br />
625 DocumentRoot /www/subdomain<br />
626 RewriteEngine On<br />
627 RewriteRule ^/.* /www/subdomain/index.html<br />
628 # ...<br />
629 </span>
630 &lt;/VirtualHost&gt;<br />
631 <br />
632 &lt;VirtualHost 172.20.30.40&gt;<br />
633 DocumentRoot /www/subdomain/sub1<br />
634 <span class="indent">
635 ServerName www.sub1.domain.tld<br />
636 ServerPath /sub1/<br />
637 RewriteEngine On<br />
638 RewriteRule ^(/sub1/.*) /www/subdomain$1<br />
639 # ...<br />
640 </span>
641 &lt;/VirtualHost&gt;<br />
642 <br />
643 &lt;VirtualHost 172.20.30.40&gt;<br />
644 <span class="indent">
645 DocumentRoot /www/subdomain/sub2<br />
646 ServerName www.sub2.domain.tld<br />
647 ServerPath /sub2/<br />
648 RewriteEngine On<br />
649 RewriteRule ^(/sub2/.*) /www/subdomain$1<br />
650 # ...<br />
651 </span>
652 &lt;/VirtualHost&gt;
653 </code></p></div>
655 <p>À cause de la directive
656 <code class="directive"><a href="../mod/core.html#serverpath">ServerPath</a></code>, une requête sur
657 une URL <code>http://www.sub1.domain.tld/sub1/</code> est
658 <em>toujours</em> servie par le serveur sub1-vhost.<br />
659 Une requête sur une URL <code>http://www.sub1.domain.tld/</code> n'est
660 servie par le serveur sub1-vhost que si le client envoie un en-tête
661 <code>Host:</code> correct. Si aucun en-tête <code>Host:</code>
662 n'est transmis, le serveur primaire sera utilisé.<br />
663 Notez qu'il y a une singularité&nbsp;: une requête sur
664 <code>http://www.sub2.domain.tld/sub1/</code> est également servie
665 par le serveur sub1-vhost si le client n'envoie pas d'en-tête
666 <code>Host:</code>.<br />
667 Les directives <code class="directive"><a href="../mod/mod_rewrite.html#rewriterule">RewriteRule</a></code>
668 sont employées pour s'assurer que le client qui envoie un en-tête
669 <code>Host:</code> correct puisse utiliser d'autres variantes d'URLs,
670 <em>c'est-à-dire</em> avec ou sans préfixe d'URL.</p>
672 </div></div>
673 <div class="bottomlang">
674 <p><span>Langues Disponibles: </span><a href="../en/vhosts/examples.html" hreflang="en" rel="alternate" title="English">&nbsp;en&nbsp;</a> |
675 <a href="../fr/vhosts/examples.html" title="Français">&nbsp;fr&nbsp;</a> |
676 <a href="../ja/vhosts/examples.html" hreflang="ja" rel="alternate" title="Japanese">&nbsp;ja&nbsp;</a> |
677 <a href="../ko/vhosts/examples.html" hreflang="ko" rel="alternate" title="Korean">&nbsp;ko&nbsp;</a> |
678 <a href="../tr/vhosts/examples.html" hreflang="tr" rel="alternate" title="Türkçe">&nbsp;tr&nbsp;</a></p>
679 </div><div id="footer">
680 <p class="apache">Copyright 2009 The Apache Software Foundation.<br />Authorisé sous <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache License, Version 2.0</a>.</p>
681 <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>
682 </body></html>