XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX This file is generated from xml source: DO NOT EDIT XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX <
title>Exemples d'utilisations de VirtualHost - Serveur Apache HTTP</
title>
<
body id="manual-page"><
div id="page-header">
<
p class="apache">Serveur Apache HTTP Version 2.5</
p>
<
div class="up"><
a href="./"><
img title="<-" alt="<-" src="/images/left.gif" /></
a></
div>
<
p><
span>Langues Disponibles: </
span><
a href="/en/vhosts/examples.html" hreflang="en" rel="alternate" title="English"> en </
a> |
<
div class="outofdate">Cette traduction peut �tre p�rim�e. V�rifiez la version
anglaise pour les changements r�cents.</
div>
<
p>Le but de ce document est d'essayer de r�pondre aux questions
les plus r�pandues sur la configuration des <
a href="index.html">serveurs virtuels</
a>.
Les sc�narios pr�sent�s ici se rencontrent quand plusieurs
serveurs Webs doivent tourner sur une seule et m�me machine au
<
div id="quickview"><
ul id="toc"><
li><
img alt="" src="/images/down.gif" /> <
a href="#purename">Fonctionnement de plusieurs serveurs
virtuels par nom sur une seule adresse IP.</
a></
li>
<
li><
img alt="" src="/images/down.gif" /> <
a href="#twoips">Serveurs virtuels par nom sur plus
d'une seule adresse IP.</
a></
li>
<
li><
img alt="" src="/images/down.gif" /> <
a href="#intraextra">Servir le m�me contenu sur des
adresses IP diff�rentes (telle qu'une adresse interne et une
<
li><
img alt="" src="/images/down.gif" /> <
a href="#port">Servir diff�rents sites sur diff�rents
<
li><
img alt="" src="/images/down.gif" /> <
a href="#ip">H�bergement virtuel bas� sur IP</
a></
li>
<
li><
img alt="" src="/images/down.gif" /> <
a href="#ipport">H�bergements virtuels mixtes bas�s sur
les ports et sur les IP</
a></
li>
<
li><
img alt="" src="/images/down.gif" /> <
a href="#mixed">H�bergements virtuels mixtes bas� sur
les noms et sur IP</
a></
li>
<
li><
img alt="" src="/images/down.gif" /> <
a href="#proxy">Utilisation simultan�e de
<
code>Virtual_host</
code> et de mod_proxy</
a></
li>
<
li><
img alt="" src="/images/down.gif" /> <
a href="#default">Utilisation de serveurs virtuels
<
code>_default_</
code></
a></
li>
<
li><
img alt="" src="/images/down.gif" /> <
a href="#migrate">Migration d'un serveur virtuel
par nom en un serveur virtuel par IP</
a></
li>
<
li><
img alt="" src="/images/down.gif" /> <
a href="#serverpath">Utilisation de la directive
<
code>ServerPath</
code></
a></
li>
</
ul><
ul class="seealso"><
li><
a href="#comments_section">Commentaires</
a></
li></
ul></
div>
<
div class="top"><
a href="#page-header"><
img alt="top" src="/images/up.gif" /></
a></
div>
<
h2><
a name="purename" id="purename">Fonctionnement de plusieurs serveurs
virtuels par nom sur une seule adresse IP.</
a></
h2>
<
p>Votre serveur ne dispose que d'une seule adresse IP, et de
nombreux alias (CNAMES) pointent vers cette adresse dans le DNS.
<
div class="note"><
h3>Note :</
h3><
p>La configuration de serveurs virtuels
sous Apache ne provoque pas leur apparition magique dans la
configuration du DNS. Il <
em>faut</
em> que leurs noms soient
d�finis dans le DNS, et qu'ils y soient r�solus sur l'adresse IP
du serveur, faute de quoi personne ne pourra visiter votre site Web.
Il est possible d'ajouter des entr�es dans le fichier
<
code>hosts</
code> pour tests locaux, mais qui ne fonctionneront
que sur la machine poss�dant ces entr�es.</
p>
<
pre class="prettyprint lang-config"># Apache doit �couter sur le port 80
</VirtualHost></
pre>
<
p>Les ast�risques correspondent � toutes les adresses, si bien que
le serveur principal ne r�pondra jamais � aucune requ�te. Comme le
<
code>ServerName
www.example.com</
code> se trouve en premier dans le fichier
de configuration, il a la plus grande priorit� et peut �tre vu
comme serveur <
cite>par d�faut</
cite> ou <
cite>primaire</
cite> ;
ce qui signifie que toute requ�te re�ue ne correspondant � aucune
des directives <
code>ServerName</
code> sera servie par ce premier
<
code>VirtualHost</
code>.</
p>
<
p>Vous pouvez remplacer <
code>*</
code>
par l'adresse IP du syst�me si vous ne souhaitez pas faire
op�rer la s�lection du serveur virtuel en fonction de la
<
p>En g�n�ral, il est commode d'utiliser <
code>*</
code> sur
les syst�mes dont l'adresse IP n'est pas constante - par
exemple, pour des serveurs dont l'adresse IP est attribu�e
dynamiquement par le FAI, et o� le DNS est g�r� au moyen
d'un DNS dynamique quelconque. Comme <
code>*</
code> signifie
<
cite>n'importe quelle adresse</
cite>, cette configuration
fonctionne sans devoir �tre modifi�e quand l'adresse IP du
syst�me est modifi�e.</
p>
<
p>La configuration ci-dessus est en pratique utilis�e dans la
plupart des cas pour les serveurs virtuels par nom. En fait, le
seul cas o� cette configuration ne fonctionne pas est lorsque
diff�rents contenus doivent �tre servis en fonction de l'adresse IP
et du port contact�s par le client.</
p>
</
div><
div class="top"><
a href="#page-header"><
img alt="top" src="/images/up.gif" /></
a></
div>
<
h2><
a name="twoips" id="twoips">Serveurs virtuels par nom sur plus
d'une seule adresse IP.</
a></
h2>
<
h3>Note :</
h3><
p>Toutes les techniques pr�sent�es ici
peuvent �tre �tendues � un plus grand nombre d'adresses IP.</
p>
<
p>Le serveur a deux adresses IP. Sur l'une
(<
code>172.20.30.40</
code>), le serveur "principal"
(<
code>172.20.30.50</
code>), deux serveurs virtuels (ou plus)
<
pre class="prettyprint lang-config">Listen 80
# Serveur "principal" sur 172.20.30.40
<VirtualHost 172.20.30.50>
# D'autres directives ici ...
<VirtualHost 172.20.30.50>
# D'autres directives ici ...
</VirtualHost></
pre>
<
p>Toute requ�te arrivant sur une autre adresse que
<
code>172.20.30.50</
code> sera servie par le serveur principal.
Les requ�tes vers <
code>172.20.30.50</
code> avec un nom de serveur
inconnu, ou sans en-t�te <
code>Host:</
code>, seront servies par
</
div><
div class="top"><
a href="#page-header"><
img alt="top" src="/images/up.gif" /></
a></
div>
<
h2><
a name="intraextra" id="intraextra">Servir le m�me contenu sur des
adresses IP diff�rentes (telle qu'une adresse interne et une
<
p>La machine serveur dispose de deux adresses IP
(<
code>192.168.1.1</
code> et <
code>172.20.30.40</
code>). Cette
machine est plac�e � la fois sur le r�seau interne (l'Intranet)
et le r�seau externe (Internet). Sur Internet, le nom
(<
code>172.20.30.40</
code>), mais sur le r�seau interne, ce m�me
nom pointe vers l'adresse interne (<
code>192.168.1.1</
code>).</
p>
<
p>Le serveur peut �tre configur� pour r�pondre de la m�me mani�re
aux requ�tes internes et externes, au moyen d'une seule section
<
code>VirtualHost</
code>.</
p>
<
pre class="prettyprint lang-config"><VirtualHost 192.168.1.1 172.20.30.40>
</VirtualHost></
pre>
<
p>Ainsi, les requ�tes en provenance de chacun des deux r�seaux
seront servies par le m�me <
code>VirtualHost</
code>.</
p>
<
h3>Note :</
h3><
p>Sur le r�seau interne, il est possible
d'utiliser le nom raccourci <
code>server</
code> au lieu du nom
<
p>Notez �galement que dans l'exemple pr�c�dent, vous pouvez
remplacer la liste des adresses IP par des <
code>*</
code> afin
que le serveur r�ponde de la m�me mani�re sur toutes ses
</
div><
div class="top"><
a href="#page-header"><
img alt="top" src="/images/up.gif" /></
a></
div>
<
h2><
a name="port" id="port">Servir diff�rents sites sur diff�rents
<
p>Vous disposez de plusieurs domaines pointant sur la m�me adresse
IP et vous voulez �galement servir de multiples ports. L'exemple
suivant montre que la s�lection en fonction du nom intervient apr�s
la s�lection de la meilleure correspondance du point de vue adresse
<
pre class="prettyprint lang-config">Listen 80
<VirtualHost 172.20.30.40:80>
<VirtualHost 172.20.30.40:8080>
<VirtualHost 172.20.30.40:80>
<VirtualHost 172.20.30.40:8080>
</VirtualHost></
pre>
</
div><
div class="top"><
a href="#page-header"><
img alt="top" src="/images/up.gif" /></
a></
div>
<
h2><
a name="ip" id="ip">H�bergement virtuel bas� sur IP</
a></
h2>
<
p>Le serveur dispose de deux adresses IP (<
code>172.20.30.40</
code>
et <
code>172.20.30.50</
code>) correspondant respectivement aux noms
<
pre class="prettyprint lang-config">Listen 80
<VirtualHost 172.20.30.40>
<VirtualHost 172.20.30.50>
</VirtualHost></
pre>
<
p>Les requ�tes provenant d'adresses non sp�cifi�es dans l'une des
directives <
code><VirtualHost></
code> (comme pour
<
code>localhost</
code> par exemple) seront dirig�es vers le serveur
principal, s'il en existe un.</
p>
</
div><
div class="top"><
a href="#page-header"><
img alt="top" src="/images/up.gif" /></
a></
div>
<
h2><
a name="ipport" id="ipport">H�bergements virtuels mixtes bas�s sur
les ports et sur les IP</
a></
h2>
<
p>Le serveur dispose de deux adresses IP (<
code>172.20.30.40</
code>
et <
code>172.20.30.50</
code>) correspondant respectivement aux noms
Pour chacun d'eux, nous voulons un h�bergement sur les ports 80
<
pre class="prettyprint lang-config">Listen 172.20.30.40:80
<VirtualHost 172.20.30.40:80>
<VirtualHost 172.20.30.40:8080>
<VirtualHost 172.20.30.50:80>
<VirtualHost 172.20.30.50:8080>
</VirtualHost></
pre>
</
div><
div class="top"><
a href="#page-header"><
img alt="top" src="/images/up.gif" /></
a></
div>
<
h2><
a name="mixed" id="mixed">H�bergements virtuels mixtes bas� sur
les noms et sur IP</
a></
h2>
<
p>Toute adresse indiqu�e comme argument d'une section VirtualHost
et n'apparaissant dans aucun autre serveur virtuel, fait de cette
section un serveur virtuel s�lectionnable uniquement en fonction de
<
pre class="prettyprint lang-config">Listen 80
<VirtualHost 172.20.30.40>
<VirtualHost 172.20.30.40>
<VirtualHost 172.20.30.40>
<VirtualHost 172.20.30.50>
<VirtualHost 172.20.30.60>
</VirtualHost></
pre>
</
div><
div class="top"><
a href="#page-header"><
img alt="top" src="/images/up.gif" /></
a></
div>
<
h2><
a name="proxy" id="proxy">Utilisation simultan�e de
<
code>Virtual_host</
code> et de mod_proxy</
a></
h2>
<
p>L'exemple suivant montre comment une machine peut mandater
un serveur virtuel fonctionnant sur le serveur d'une autre machine.
Dans cet exemple, un serveur virtuel de m�me nom est configur� sur
une machine � l'adresse <
code>192.168.111.2</
code>. La directive
<
code class="directive"><
a href="/mod/mod_proxy.html#proxypreservehost on">ProxyPreserveHost On</
a></
code> est
employ�e pour permette au nom de domaine d'�tre pr�serv� lors du
transfert, au cas o� plusieurs noms de domaines cohabitent sur
<
pre class="prettyprint lang-config"><VirtualHost *:*>
</VirtualHost></
pre>
</
div><
div class="top"><
a href="#page-header"><
img alt="top" src="/images/up.gif" /></
a></
div>
<
h2><
a name="default" id="default">Utilisation de serveurs virtuels
<
code>_default_</
code></
a></
h2>
<
h3><
a name="defaultallports" id="defaultallports">Serveurs virtuels
<
code>_default_</
code> pour tous les ports</
a></
h3>
<
p>Exemple de capture de <
em>toutes</
em> les requ�tes �manant
d'adresses IP ou de ports non connus, <
em>c'est-�-dire</
em>, d'un
couple
adresse/
port non trait� par aucun autre serveur virtuel.</
p>
<
pre class="prettyprint lang-config"><VirtualHost _default_:*>
</VirtualHost></
pre>
<
p>L'utilisation d'un tel serveur virtuel avec un joker pour le
port emp�che de mani�re efficace qu'une requ�te n'atteigne le
<
p>Un serveur virtuel par d�faut ne servira jamais une requ�te
qui est envoy�e vers un couple
adresse/
port utilis�e par un
serveur virtuel par nom. Si la requ�te contient un en-t�te
<
code>Host:</
code> inconnu, ou si celui-ci est absent, elle
sera toujours servie par le serveur virtuel primaire par nom
(celui correspondant � ce couple
adresse/
port trouv� en premier
dans le fichier de configuration).</
p>
<
p>Vous pouvez utiliser une directive
<
code class="directive"><
a href="/mod/mod_alias.html#aliasmatch">AliasMatch</
a></
code> ou
<
code class="directive"><
a href="/mod/mod_rewrite.html#rewriterule">RewriteRule</
a></
code> afin de
r��crire une requ�te pour une unique page d'information (ou pour
<
h3><
a name="defaultdifferentports" id="defaultdifferentports">Serveurs virtuels
<
code>_default_</
code> pour des ports diff�rents</
a></
h3>
<
p>La configuration est similaire � l'exemple pr�c�dent, mais
le serveur �coute sur plusieurs ports et un second serveur virtuel
<
code>_default_</
code> pour le port 80 est ajout�.</
p>
<
pre class="prettyprint lang-config"><VirtualHost _default_:80>
<VirtualHost _default_:*>
</VirtualHost></
pre>
<
p>Le serveur virtuel par d�faut d�fini pour le port 80 (il doit
imp�rativement �tre plac� avant un autre serveur virtuel par
d�faut traitant tous les ports gr�ce au joker *) capture toutes
les requ�tes envoy�es sur une adresse IP non sp�cifi�e. Le
serveur principal n'est jamais utilis� pour servir une requ�te.</
p>
<
h3><
a name="defaultoneport" id="defaultoneport">Serveurs virtuels
<
code>_default_</
code> pour un seul port</
a></
h3>
<
p>Nous voulons cr�er un serveur virtuel par d�faut seulement
<
pre class="prettyprint lang-config"><VirtualHost _default_:80>
</VirtualHost></
pre>
<
p>Une requ�te vers une adresse non sp�cifi�e sur le port 80
sera servie par le serveur virtuel par d�faut, et toute autre
requ�te vers une adresse et un port non sp�cifi�s sera servie
par le serveur principal.</
p>
<
p>L'utilisation du caract�re g�n�rique <
code>*</
code> dans la
d�claration d'un serveur virtuel l'emporte sur
<
code>_default_</
code>.</
p>
</
div><
div class="top"><
a href="#page-header"><
img alt="top" src="/images/up.gif" /></
a></
div>
<
h2><
a name="migrate" id="migrate">Migration d'un serveur virtuel
par nom en un serveur virtuel par IP</
a></
h2>
<
p>Le serveur virtuel par nom avec le nom de domaine
par nom</
a>) devrait obtenir sa propre adresse IP. Pendant la
phase de migration, il est possible d'�viter les probl�mes avec
les noms de serveurs et autres serveurs mandataires qui m�morisent
les vielles adresses IP pour les serveurs virtuels par nom.<
br />
La solution est simple, car il suffit d'ajouter la nouvelle
adresse IP (<
code>172.20.30.50</
code>) dans la directive
<
code>VirtualHost</
code>.</
p>
<
pre class="prettyprint lang-config">Listen 80
<VirtualHost 172.20.30.40 172.20.30.50>
<VirtualHost 172.20.30.40>
</VirtualHost></
pre>
<
p>Le serveur virtuel peut maintenant �tre joint par la nouvelle
adresse (comme un serveur virtuel par IP) et par l'ancienne
adresse (comme un serveur virtuel par nom).</
p>
</
div><
div class="top"><
a href="#page-header"><
img alt="top" src="/images/up.gif" /></
a></
div>
<
h2><
a name="serverpath" id="serverpath">Utilisation de la directive
<
code>ServerPath</
code></
a></
h2>
<
p>Dans le cas o� vous disposez de deux serveurs virtuels par nom,
le client doit transmettre un en-t�te <
code>Host:</
code> correct
pour d�terminer le serveur concern�. Les vieux clients
HTTP/
1.0 n'envoient pas un tel en-t�te et Apache n'a aucun indice pour
conna�tre le serveur virtuel devant �tre joint (il sert la
requ�te � partir d'un serveur virtuel primaire). Dans un soucis
de pr�server la compatibilit� descendante, il suffit de cr�er
un serveur virtuel primaire charg� de retourner une page contenant
des liens dont les URLs auront un pr�fixe identifiant les serveurs
<
pre class="prettyprint lang-config"><VirtualHost 172.20.30.40>
# serveur virtuel primaire
<VirtualHost 172.20.30.40>
<VirtualHost 172.20.30.40>
</VirtualHost></
pre>
<
p>� cause de la directive
<
code class="directive"><
a href="/mod/core.html#serverpath">ServerPath</
a></
code>, une requ�te sur
<
em>toujours</
em> servie par le serveur sub1-vhost.<
br />
servie par le serveur sub1-vhost que si le client envoie un en-t�te
<
code>Host:</
code> correct. Si aucun en-t�te <
code>Host:</
code>
n'est transmis, le serveur primaire sera utilis�.</
p>
<
p>Notez qu'il y a une singularit� : une requ�te sur
par le serveur sub1-vhost si le client n'envoie pas d'en-t�te
<
p>Les directives <
code class="directive"><
a href="/mod/mod_rewrite.html#rewriterule">RewriteRule</
a></
code>
sont employ�es pour s'assurer que le client qui envoie un en-t�te
<
code>Host:</
code> correct puisse utiliser d'autres variantes d'URLs,
<
em>c'est-�-dire</
em> avec ou sans pr�fixe d'URL.</
p>
<
p><
span>Langues Disponibles: </
span><
a href="/en/vhosts/examples.html" hreflang="en" rel="alternate" title="English"> en </
a> |
</
div><
div class="top"><
a href="#page-header"><
img src="/images/up.gif" alt="top" /></
a></
div><
div class="section"><
h2><
a id="comments_section" name="comments_section">Commentaires</
a></
h2><
div class="warning"><
strong>Notice:</
strong><
br />This is not a Q&A section. Comments placed here should be pointed towards suggestions on improving the documentation or server, and may be removed again by our moderators if they are either implemented or considered
invalid/
off-topic. Questions on how to manage the Apache HTTP Server should be directed at either our IRC channel, #httpd, on Freenode, or sent to our <
a href="http://httpd.apache.org/lists.html">mailing lists</
a>.</
div>
var comments_shortname = 'httpd'; d.write('<div id="comments_thread"><\/div>'); d.write('<div id="comments_thread">Comments are disabled for this page at the moment.<\/div>'); //--><!]]></
script></
div><
div id="footer">
if (typeof(prettyPrint) !== 'undefined') {