<?xml version='1.0' encoding='ISO-8859-1' ?>
<!-- English Revision: 1647229:1673945 (outdated) -->
<!-- French translation by alain B, review by Vincent Deffontaines
updated by Lucien GENTIS -->
<!--
Licensed to the Apache Software Foundation (ASF) under one or more
contributor license agreements. See the NOTICE file distributed with
this work for additional information regarding copyright ownership.
The ASF licenses this file to You under the Apache License, Version 2.0
(the "License"); you may not use this file except in compliance with
the License. You may obtain a copy of the License at
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-->
<manualpage metafile="name-based.xml.meta">
<parentdocument href="./">Serveurs virtuels</parentdocument>
<title>Support Apache des serveurs virtuels par nom</title>
<summary>
<p>Ce document d�crit quand et comment utiliser des serveurs
virtuels par nom.</p>
</summary>
<seealso><a href="mass.html">Configuration dynamique des h�bergements virtuels de masse</a></seealso>
<section id="namevip"><title>Serveurs virtuels par nom vs. par IP</title>
de la connexion afin de d�terminer quel serveur virtuel doit
r�pondre. Par cons�quent, vous devez disposer d'adresses IP
diff�rentes pour chaque serveur.</p>
<p>Avec un h�bergement
virtuel par nom, le serveur s'appuie sur les informations
transmises par le client dans les en-t�tes HTTP de ses requ�tes.
La technique pr�sent�e ici vous permet de disposer de serveurs
virtuels diff�rents partag�s sur une m�me adresse IP.</p>
<p>L'h�bergement virtuel par nom est habituellement plus simple,
car il vous suffit de configurer votre serveur DNS pour que
chaque domaine pointe sur l'adresse IP dont vous disposez, et de
configurer votre serveur Apache HTTP afin qu'il reconnaisse
ces domaines. Il r�duit aussi la p�nurie en adresses IP. Par
cons�quent, vous devriez utiliser l'h�bergement virtuel par
nom, sauf dans le cas o� vous utiliseriez des �quipements qui
n�cessitent un h�bergement bas� sur IP. Les raisons historiques de
l'h�bergement bas� sur IP dans un but de support de certains clients ne
s'appliquent plus � un serveur web d'usage g�n�ral.</p>
<p>La s�lection du serveur virtuel en fonction du nom s'op�re en
dehors de l'algorithme de s�lection du serveur virtuel en fonction
de l'adresse IP, ce qui signifie que les recherches du point de vue
du nom du serveur ne s'effectuent que parmi le jeu de serveurs
virtuels pour lesquels la correspondance avec la paire adresse
</section>
<section id="alg"><title>Comment le serveur s�lectionne-t-il le serveur
virtuel bas� sur le nom appropri�</title>
<p>Il est important de savoir que la premi�re �tape de la r�solution
de serveur virtuel bas�e sur le nom est une r�solution bas�e sur IP.
La r�solution de serveur virtuel bas�e sur le nom ne fait que
choisir le serveur virtuel bas� sur le nom le plus appropri�, en se
limitant aux candidats qui conviennent le mieux du point de vue IP.
La r�solution bas�e sur IP est sans objet si l'on
utilise un caract�re g�n�rique (*) pour l'adresse IP dans
toutes les directives VirtualHost.</p>
<p>A l'arriv�e d'une requ�te, le serveur va rechercher l'argument de
section <directive type="section"
module="core">VirtualHost</directive> pr�sentant la meilleure
utilis�e dans la requ�te. Si plusieurs serveurs virtuels poss�dent
valeurs des directives <directive module="core"
>ServerName</directive> et <directive
>module="core">ServerAlias</directive> avec le nom de serveur
pr�sent dans la requ�te.</p>
<p>Si vous ne d�finissez pas de directive <directive
module="core">ServerName</directive> pour un serveur virtuel � base
de nom, le serveur utilisera par d�faut le nom de domaine
enti�rement qualifi� (FQDN) d�duit du nom d'h�te syst�me. Cette
configuration sans nom de serveur explicite peut conduire � des
erreurs de choix du serveur virtuel � utiliser et est d�conseill�e.</p>
<section id="defaultvhost"><title>Le serveur virtuel � base de nom
<p>Si aucune directive ServerName ou ServerAlias ne correspond dans
la liste de serveurs virtuels pr�sentant la meilleure correspondance
virtuel de cette liste</strong> qui sera utilis�.</p></section>
</section>
<section id="using"><title>Utilisation de serveurs virtuels par nom</title>
<related>
<modulelist>
<module>core</module>
</modulelist>
<directivelist>
<directive module="core">DocumentRoot</directive>
<directive module="core">ServerAlias</directive>
<directive module="core">ServerName</directive>
<directive module="core" type="section">VirtualHost</directive>
</directivelist>
</related>
<p>La premi�re �tape consiste � cr�er une section
<directive type="section" module="core">VirtualHost</directive>
pour chacun des serveurs � d�finir. Dans chaque section
<directive type="section" module="core">VirtualHost</directive>,
vous devez d�finir au minimum une directive
<directive module="core">ServerName</directive> pour d�signer
le serveur concern� et une directive
<directive module="core">DocumentRoot</directive> pour pr�ciser
l'emplacement sur le syst�me de fichiers du contenu de ce serveur.</p>
<note><title>Le serveur principal dispara�t</title>
<p>Toute requ�te qui ne correspond � aucune section <directive
type="section" module="core">VirtualHost</directive> existante
est trait�e avec la configuration du serveur principal, sans
tenir compte du nom d'h�te ou de la directive ServerName.</p>
<p>Lorsque vous ajoutez un serveur virtuel bas� sur le nom � un
serveur existant, et si les caract�ristiques de ce serveur
les requ�tes seront alors trait�es par un serveur virtuel
explicite. Dans ce cas, il est en g�n�ral judicieux de cr�er un
<a href="#defaultvhost">serveur virtuel par d�faut</a>
comportant une directive <directive
module="core">ServerName</directive> correspondant au nom du
serveur principal. De nouveaux domaines sur les m�mes interface
et port, mais n�cessitant des configurations distinctes,
pourront alors �tre ajout�s en tant que serveurs virtuels
sp�cifiques (et non par d�faut).</p>
</note>
<note><title>H�ritage du nom de serveur</title>
<p>Il est toujours pr�f�rable de d�finir une directive <directive
module="core">ServerName</directive> au niveau de chaque serveur
virtuel � base de nom. Si un serveur virtuel ne d�finit pas
de directive <directive module="core">ServerName</directive>, le
nom de ce serveur virtuel sera h�rit� du serveur principal. Si
aucun nom de serveur n'a �t� explicitement d�fini au niveau du
serveur principal, le serveur tentera de d�terminer son nom via
une r�solution de nom DNS inverse sur la premi�re adresse
d'�coute. Dans tous les cas, ce nom de serveur h�rit� influencera
la s�lection du serveur virtuel � base de nom, c'est pourquoi il
est toujours pr�f�rable de d�finir une directive <directive
module="core">ServerName</directive> pour chaque serveur virtuel
� base de nom.</p>
</note>
<p>Par exemple, supposez que vous h�bergez le domaine
la m�me adresse IP. Il vous suffit d'ajouter la configuration
<highlight language="config">
<VirtualHost *:80>
# Le premier serveur virtuel de la liste est aussi le
# serveur par d�faut pour *:80
ServerName www.example.com
ServerAlias example.com
</VirtualHost>
<VirtualHost *:80>
ServerName other.example.com
DocumentRoot /www/otherdomain
</VirtualHost>
</highlight>
<p>Autrement, vous pouvez sp�cifiez une adresse IP explicite
� la place de <code>*</code> dans la directive
<directive type="section" module="core" >VirtualHost</directive>.
Par exemple, cette m�thode est utile si vous souhaitez faire
tourner quelques serveurs virtuels par nom sur une m�me adresse
IP, et d'autres, soit par IP, soit bas�s sur un autre jeu de
serveurs virtuels par nom sur une autre adresse IP.</p>
<p>Plusieurs serveurs sont accessibles par plus d'un nom. Il
suffit de placer la directive
<directive module="core">ServerAlias</directive> dans une section
<directive type="section" module="core">VirtualHost</directive>.
Par exemple, dans la premi�re section
<directive type="section" module="core">VirtualHost</directive>
ci-dessus, la directive <directive module="core">ServerAlias</directive>
indique aux utilisateurs les autres noms permis pour acc�der au
m�me site Web :</p>
<highlight language="config">
ServerAlias example.com *.example.com
</highlight>
<p>ainsi, toutes les requ�tes portant sur un domaine
et <code>?</code> peuvent �tre utilis�s pour les correspondances.
Bien entendu, vous ne pouvez pas inventer des noms et les placer
dans une directive <directive module="core">ServerName</directive>
ou <code>ServerAlias</code>. Tout d'abord, votre serveur DNS
doit �tre correctement configur� pour lier ces noms � une
adresse IP associ�e avec votre serveur.</p>
<p>La recherche du serveur virtuel � base de nom qui correspond au
plus pr�s � la requ�te s'effectue parmi les <directive
type="section" module="core">virtualhost</directive> selon leur
ordre d'apparition dans le fichier de configuration. Le premier
serveur virtuel dont le <directive
module="core">ServerName</directive> ou le <directive
module="core">ServerAlias</directive> correspond est utilis�, sans
priorit� particuli�re en cas de pr�sence de caract�res g�n�riques
(que ce soit pour le ServerName ou le ServerAlias).</p>
<p>La liste compl�te des noms dans la section <directive
module="core">VirtualHost</directive> sont trait�s comme une
directive <directive module="core">ServerAlias</directive> sans
caract�res g�n�riques.</p>
<p>Finalement, vous pouvez affiner la configuration des serveurs
virtuels en pla�ant d'autres directives � l'int�rieur des sections
<directive type="section" module="core">VirtualHost</directive>.
La plupart des directives peut �tre plac�e dans ces sections en
y changeant seulement la configuration du serveur virtuel associ�.
Pour d�terminer si une directive particuli�re est permise,
consultez le <a
href="/mod/directive-dict.html#Context">contexte</a> de la
directive. Le jeu de directives configur�es dans le contexte
du <em>serveur principal</em> (en dehors de toutes sections
<directive type="section" module="core">VirtualHost</directive>)
sera utilis� seulement s'il n'y a pas de configuration contraire
par un serveur virtuel.</p>
</section>
</manualpage>