Serveur Apache HTTP Version 2.4

Ce document d�crit quand et comment utiliser des serveurs virtuels par nom.
 Serveurs virtuels par nom vs. par IP
 Serveurs virtuels par nom vs. par IP Comment le serveur s�lectionne-t-il le serveur
virtuel bas� sur le nom appropri�
 Comment le serveur s�lectionne-t-il le serveur
virtuel bas� sur le nom appropri� Utilisation de serveurs virtuels par nom
 Utilisation de serveurs virtuels par nomLes serveurs virtuels par IP utilisent l'adresse IP 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.
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.
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.
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 IP/port est la plus exacte.
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.
A l'arriv�e d'une requ�te, le serveur va rechercher l'argument de
    section <VirtualHost> pr�sentant la meilleure
    (la plus exacte) correspondance avec la paire adresse IP/port
    utilis�e dans la requ�te. Si plusieurs serveurs virtuels poss�dent
    cette m�me paire adresse IP/port, Apache va ensuite comparer les
    valeurs des directives ServerName et module="core">ServerAlias avec le nom de serveur
    pr�sent dans la requ�te.
Si aucune directive ServerName ou ServerAlias ne correspond dans la liste de serveurs virtuels pr�sentant la meilleure correspondance du point de vue adresse IP/port, c'est le premier serveur virtuel de cette liste qui sera utilis�.
| Modules Apparent�s | Directives Apparent�es | 
|---|---|
La premi�re �tape consiste � cr�er une section
    <VirtualHost>
    pour chacun des serveurs � d�finir. Dans chaque section
    <VirtualHost>,
    vous devez d�finir au minimum une directive
    ServerName pour d�signer
    le serveur concern� et une directive
    DocumentRoot pour pr�ciser
    l'emplacement sur le syst�me de fichiers du contenu de ce serveur.
Toute requ�te qui ne correspond � aucune section <VirtualHost> existante
	est trait�e avec la configuration du serveur principal, sans
	tenir compte du nom d'h�te ou de la directive ServerName.
Lorsque vous ajoutez un serveur virtuel bas� sur le nom � un
	serveur existant, et si les caract�ristiques de ce serveur
	virtuel correspondent � des combinaisons IP/port pr�existantes,
	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
	serveur virtuel par d�faut
	comportant une directive ServerName 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).
Il est toujours pr�f�rable de d�finir une directive ServerName au niveau de chaque serveur
       virtuel � base de nom. Si un serveur virtuel ne d�finit pas
       de directive  ServerName, 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 ServerName pour chaque serveur virtuel
       � base de nom.
Par exemple, supposez que vous h�bergez le domaine
    www.example.com et que vous souhaitez ajouter le
    serveur virtuel other.example.com qui pointe sur
    la m�me adresse IP. Il vous suffit d'ajouter la configuration
    suivante � apache2.conf :
<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
    DocumentRoot /www/domain
</VirtualHost>
<VirtualHost *:80>
    ServerName other.example.com
    DocumentRoot /www/otherdomain
</VirtualHost>
    Autrement, vous pouvez sp�cifiez une adresse IP explicite
    � la place de * dans la directive
    <VirtualHost>.
    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.
Plusieurs serveurs sont accessibles par plus d'un nom. Il
    suffit de placer la directive
    ServerAlias dans une section
    <VirtualHost>.
    Par exemple, dans la premi�re section
    <VirtualHost>
    ci-dessus, la directive ServerAlias
    indique aux utilisateurs les autres noms permis pour acc�der au
    m�me site Web :
ServerAlias example.com *.example.com
ainsi, toutes les requ�tes portant sur un domaine
    example.com seront servies par le serveur virtuel
    www.example.com. Les caract�res joker *
    et ? peuvent �tre utilis�s pour les correspondances.
    Bien entendu, vous ne pouvez pas inventer des noms et les placer
    dans une directive ServerName
    ou ServerAlias. Tout d'abord, votre serveur DNS
    doit �tre correctement configur� pour lier ces noms � une
    adresse IP associ�e avec votre serveur.
La recherche du serveur virtuel � base de nom qui correspond au
    plus pr�s � la requ�te s'effectue parmi les <virtualhost> selon leur
    ordre d'apparition dans le fichier de configuration. Le premier
    serveur virtuel dont le ServerName ou le ServerAlias 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).
La liste compl�te des noms dans la section VirtualHost sont trait�s comme une
    directive ServerAlias sans
    caract�res g�n�riques.
Finalement, vous pouvez affiner la configuration des serveurs
    virtuels en pla�ant d'autres directives � l'int�rieur des sections
    <VirtualHost>.
    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 contexte de la
    directive. Le jeu de directives configur�es dans le contexte
    du serveur principal (en dehors de toutes sections
    <VirtualHost>)
    sera utilis� seulement s'il n'y a pas de configuration contraire
    par un serveur virtuel.