details.html.fr revision ad79e6242f42c1915d14628f8bf44f04b129716a
<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
This file is generated from xml source: DO NOT EDIT
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
-->
<title>D�tails sur le fonctionnement des serveurs virtuels - Serveur Apache HTTP</title>
<link href="/style/css/manual.css" rel="stylesheet" media="all" type="text/css" title="Main stylesheet" />
<link href="/style/css/manual-loose-100pc.css" rel="alternate stylesheet" media="all" type="text/css" title="No Sidebar - Default font size" />
<body id="manual-page"><div id="page-header">
<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>
<p class="apache">Serveur Apache HTTP Version 2.5</p>
<div id="path">
<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.5</a> > <a href="./">Serveurs virtuels</a></div><div id="page-content"><div id="preamble"><h1>D�tails sur le fonctionnement des serveurs virtuels</h1>
<div class="toplang">
<p><span>Langues Disponibles: </span><a href="/en/vhosts/details.html" hreflang="en" rel="alternate" title="English"> en </a> |
<a href="/tr/vhosts/details.html" hreflang="tr" rel="alternate" title="T�rk�e"> tr </a></p>
</div>
<div class="outofdate">Cette traduction peut �tre p�rim�e. V�rifiez la version
anglaise pour les changements r�cents.</div>
<p>Ce document vise � expliquer dans le d�tail comment le serveur
HTTP Apache proc�de lors du choix de l'utilisation
d'un serveur virtuel en fonction d'une requ�te re�ue.</p>
Serveurs virtuels � base de nom et serveurs virtuels � base
d'adresse IP</a> pour d�terminer quel type de serveur virtuel nous
convient le mieux, puis de lire les documentations <a href="name-based.html">serveurs virtuels � base de nom</a> ou <a href="ip-based.html">serveurs virtuels � base d'adresse IP</a>, et enfin
<p>Si vous voulez entrer dans les d�tails, vous pouvez revenir vers
cette page.</p>
</div>
<div id="quickview"><ul id="toc"><li><img alt="" src="/images/down.gif" /> <a href="#configparsing">Fichier de configuration</a></li>
</ul><h3>Voir aussi</h3><ul class="seealso"><li><a href="ip-based.html">Support des serveurs virtuels � base
dynamiquement</a></li></ul></div>
<div class="section">
<h2><a name="configparsing" id="configparsing">Fichier de configuration</a></h2>
<p>Un <em>serveur principal (main_server)</em> contient toutes
les d�finitions qui apparaissent en dehors des sections
<code><VirtualHost></code>.</p>
<p>Les serveurs virtuels, aussi
appel�s <em>vhosts</em> (pour virtual hosts), sont d�finis par les
sections <code class="directive"><a href="/mod/core.html#virtualhost"><VirtualHost></a></code>.</p>
<p>Chaque directive <code>VirtualHost</code> comporte une ou
plusieurs adresses et des ports optionnels.</p>
<p>Il est possible d'utiliser des noms d'h�tes dans la d�finition
d'un serveur virtuel, mais ils seront r�solus en adresses IP au
d�marrage du serveur, et si une r�solution de nom �choue, cette
d�finition de serveur virtuel sera ignor�e. Cette m�thode est par
cons�quent d�conseill�e.</p>
<p>L'adresse peut
�tre sp�cifi�e sous la forme <code>*</code>, ce qui conviendra � la
requ�te si aucun autre serveur virtuel ne poss�de l'adresse IP
explicite correspondant � celle de la requ�te.</p>
<p>L'adresse qui appara�t dans la directive <code>VirtualHost</code>
peut �tre associ�e � un port optionnel. Si aucun port n'est
sp�cifi�, il s'agit d'un port g�n�rique qui peut aussi �tre sp�cifi�
comme <code>*</code>. Le port g�n�rique correspond � toutes les
valeurs de port.</p>
<p>(Il ne faut pas confondre les num�ros de port sur lesquels Apache
est en �coute avec les num�ros de port sp�cifi�s dans la directive
<code>VirtualHost</code> ; ces derniers ne servent qu'� d�finir le
<code>serveur virtuel</code> qui sera s�lectionn� pour traiter la
requ�te. Pour d�finir les ports sur lesquels Apache est en �coute,
</p>
<p>L'ensemble des adresses (y compris les r�sultats multiples
<code>A</code> issus des requ�tes DNS) est appel� <em>jeu
d'adresses</em> du serveur virtuel.</p>
<p>Apache fait automatiquement sa s�lection � partir de l'en-t�te
HTTP <code>Host</code> fourni par le client, lorsque la
pour plusieurs serveurs virtuels.</p>
<p>La directive <code class="directive"><a href="/mod/core.html#servername">ServerName</a></code> peut
appara�tre en quelque endroit de la d�finition d'un serveur.
Cependant, chaque occurrence �crase la pr�c�dente (pour ce serveur).
Si aucune directive <code>ServerName</code> n'est sp�cifi�e, le
serveur tente de d�terminer le nom du serveur � partir de l'adresse
IP.</p>
<p>Le premier serveur virtuel � base de nom apparaissant dans le
fichier de configuration pour une paire IP:port donn�e est
significatif car c'est lui qui sera utilis� pour toutes les requ�tes
serveur virtuel ne poss�de un ServerName ou un ServerAlias
correspondant. Il sera aussi utilis� pour toutes les connexions SSL
si le serveur ne supporte pas l'<a class="glossarylink" href="/glossary.html#servernameindication" title="voir glossaire">Indication du nom du serveur</a>.</p>
<p>Pour chaque serveur virtuel, diverses valeurs sont initialis�es
par d�faut. En particulier :</p>
<ol>
<li>Dans le cas o� un serveur virtuel ne contient pas de directives
<code class="directive"><a href="/mod/core.html#maxkeepaliverequests">MaxKeepAliveRequests</a></code>,
alors la valeur de chacun de ces param�tres est h�rit�e de celle du
serveur principal. (C'est � dire, h�rit�e de la valeur finale apr�s
lecture de la configuration du serveur principal.)</li>
<li>Les permissions par d�faut sur les r�pertoires de chaque
serveur virtuel sont assembl�es avec celles du serveur principal.
Elles concernent �galement toutes les informations de configuration
par r�pertoire pour tous les modules.</li>
<li>Les configurations par serveur pour chaque module sont assembl�es
� partir de celles du serveur principal.</li>
</ol>
<p>L'essentiel des valeurs de configuration des serveurs virtuels
provient de valeurs par d�faut issues du serveur principal.
Mais la position dans le fichier de configuration des directives
du serveur principal n'a pas d'importance -- l'ensemble de la
configuration du serveur principal est lu avant que ces valeurs par
d�faut soient appliqu�es aux serveur virtuels. Ainsi, m�me si la
d�finition d'une valeur appara�t apr�s celle d'un serveur virtuel,
cette valeur peut affecter la definition du serveur virtuel.</p>
<p>Dans le cas o� le serveur principal n'a pas de <code>ServerName</code>
� ce stade, le nom de la machine sur laquelle tourne le programme
<code class="program"><a href="/programs/httpd.html">httpd</a></code> est utilis� � sa place. Nous appellerons
<em>jeu d'adresses du serveur principal</em> les adresses IP
renvoy�es par une r�solution DNS sur le <code>ServerName</code>
du serveur principal.</p>
<p>Pour tous les champs <code>ServerName</code> non d�finis, dans
le cas d'une configuration en serveur virtuel par nom, la valeur
adopt�e par d�faut est la premi�re adresse donn�e dans la section
<code>VirtualHost</code> qui d�finit le serveur virtuel.</p>
<p>Si un serveur virtuel contient la valeur magique
<code>_default_</code>, il fonctionne sur le m�me <code>ServerName</code>
que le serveur principal.</p>
<div class="section">
<h2><a name="hostmatching" id="hostmatching">Choix du serveur virtuel</a></h2>
<p>� la r�ception d'une requ�te, le serveur proc�de comme suit pour
d�terminer quel serveur virtuel utiliser :</p>
<h3><a name="hashtable" id="hashtable">Recherche de l'adresse IP</a></h3>
recherche toutes les directives <code>VirtualHost</code> qui
la recherche s'effectue sur la valeur g�n�rique (<code>*</code>).</p>
<p>Si aucune correspondance n'est enfin trouv�e, la requ�te sera
servie par le serveur principal.</p>
<p>S'il existe des d�finitions <code>VirtualHost</code> pour
l'adresse IP, l'�tape suivante consiste � d�terminer si nous avons �
faire � un serveur virtuel � base de nom ou d'adresse IP.</p>
<h3><a name="ipbased" id="ipbased">Serveur virtuel par IP</a></h3>
<p>Si une seule section <code>VirtualHost</code> pr�sente la
action n'est entreprise et la requ�te est
trait�e par le serveur virtuel qui correspond.</p>
<h3><a name="namebased" id="namebased">Serveur virtuel par nom</a></h3>
<p>Si plusieurs sections <code>VirtualHost</code> pr�sentent la
"liste" dans les �tapes suivantes fait r�f�rence � la liste des
serveurs virtuels qui correspondent, selon l'ordre dans lequel ils
apparaissent dans le fichier de configuration.</p>
<p>Si la connexion utilise SSL, si le serveur supporte l'<a class="glossarylink" href="/glossary.html#servernameindication" title="voir glossaire">Indication de nom de serveur</a>,
et si la n�gociation du client SSL inclut l'extension TLS dans le
nom d'h�te requis, alors ce nom d'h�te sera utilis� par la suite, tout
comme un en-t�te <code>Host:</code> aurait �t� utilis� dans le cas
d'une connexion non-SSL. Si ces conditions ne sont pas r�unies, le
premier serveur virtuel � base de nom dont l'adresse correspond sera
utilis� pour les connexions SSL. Ceci est important car c'est le
serveur virtuel qui d�termine quel certificat le serveur va utiliser
pour la connexion.</p>
<p>Si la requ�te contient un en-t�te <code>Host:</code>, on
recherche dans la liste le premier serveur virtuel dont le
<code>ServerName</code> ou le <code>ServerAlias</code> correspond,
et c'est celui-ci qui va traiter la requ�te. Un en-t�te
<code>Host:</code> peut comporter un num�ro de port mais Apache
l'ignore syst�matiquement et utilise toujours le
port sur lequel il a effectivement re�u la requ�te.</p>
<p>Le premier serveur virtuel du fichier de configuration qui
poss�de l'adresse sp�cifi�e est prioritaire et intercepte toutes les
requ�tes � destination d'un nom de serveur inconnu, ou toute requ�te
<h3><a name="persistent" id="persistent">Connexions persistantes</a></h3>
<p>La <em>recherche par adresse IP</em> d�crite ci-avant n'est faite
<em>recherche par nom</em> est r�alis�e pour <em>chaque</em> requ�te au
cours d'une connexion persistante (KeepAlive). En d'autres termes,
il est possible pour un client de faire des requ�tes sur
diff�rents serveurs virtuels par nom, au cours d'une unique
connexion persistante.</p>
<h3><a name="absoluteURI" id="absoluteURI">URI absolu</a></h3>
<p>Au cas o� l'URI de la requ�te est absolu, et que son nom de
serveur et son port correspondent au serveur principal (ou l'un
des serveurs virtuels configur�s), <em>et</em> qu'ils correspondent
� l'adresse et au port de la requ�te, alors l'URI est amput�
serveur correspondant (principal ou virtuel). Si cette correspondance
n'existe pas, l'URI reste inchang� et la requ�te est consid�r�e
comme une requ�te d'un serveur mandataire (proxy).</p>
<h3><a name="observations" id="observations">Observations</a></h3>
<ul>
<li>La s�lection d'un serveur virtuel en fonction de son nom est
un processus qui intervient apr�s la s�lection par le serveur du
serveur virtuel qui correspond le mieux du point de vue adresse
<li>Si vous ne tenez pas compte de l'adresse IP � laquelle le
client s'est connect�, indiquez un caract�re "*" comme adresse
pour tous les serveurs virtuels, et la s�lection du serveur
virtuel en fonction du nom s'appliquera alors � tous les serveurs
virtuels d�finis.</li>
<li>Les v�rifications sur <code>ServerName</code> et
<code>ServerAlias</code> ne sont jamais
r�alis�es pour les serveurs virtuels par IP.</li>
<li>Seul l'ordre des serveurs virtuels par nom
pour une adresse donn�e a une importance. Le serveur virtuel
par nom qui est pr�sent en premier dans la configuration se
voit attribu� la priorit� la plus haute pour les requ�tes
arrivant sur son jeu d'adresses IP.</li>
<li>Le num�ro de port contenu dans l'en-t�te <code>Host:</code> n'est jamais utilis�
pour les tests de correspondances. Apache ne prend en compte
que le num�ro de port sur lequel le client a envoy� la requ�te.</li>
<li>Si deux serveurs virtuels partagent la m�me adresse, la
s�lection se fera implicitement sur le nom. Il s'agit d'une
nouvelle fonctionnalit� de la version 2.3.11.</li>
<li>Le serveur principal ne sert les requ�tes que
lorsque l'adresse IP et le port demand�s par le client ne
correspondent � aucun serveur virtuel (y compris un serveur
virtuel <code>*</code>). En d'autres termes, le serveur
non sp�cifi�es (sauf quand un serveur virtuel <code>_default_</code>
correspond au port).</li>
<li>Il ne faut jamais employer de noms DNS dans des directives
<code>VirtualHost</code>, car cela oblige le serveur a s'appuyer
sur le DNS au moment du d�marrage. De plus, vous vous exposez
� des probl�mes de s�curit� si vous n'avez pas la ma�trise du
DNS pour la totalit� de vos domaines. Voir la documentation
les deux points pr�cis�s ci-apr�s.</li>
<li>Un nom de serveur <code>ServerName</code> devrait toujours
�tre indiqu� pour chaque serveur virtuel. Sans cela, une
r�solution DNS est n�cessaire pour chaque serveur virtuel.</li>
</ul>
<div class="section">
<h2><a name="tips" id="tips">Trucs et astuces</a></h2>
<p>En plus des points �voqu�s sur la page des
voici quelques points int�ressants :</p>
<ul>
<li>Toujours positionner les d�finitions relatives au serveur
principal avant toute d�finition <code>VirtualHost</code>.
(Ceci am�liore grandement la lisibilit� de la configuration
-- la mani�re dont la configuration est interpr�t�e apr�s la
lecture des fichiers ne met pas en �vidence le fait que les
d�finitions positionn�es avant et surtout apr�s les serveurs
virtuels peuvent impacter le fonctionnement de tous les
serveurs virtuels.)</li>
</ul>
</div></div>
<div class="bottomlang">
<p><span>Langues Disponibles: </span><a href="/en/vhosts/details.html" hreflang="en" rel="alternate" title="English"> en </a> |
<a href="/tr/vhosts/details.html" hreflang="tr" rel="alternate" title="T�rk�e"> tr </a></p>
</div><div id="footer">
<p class="apache">Copyright 2012 The Apache Software Foundation.<br />Autoris� sous <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache License, Version 2.0</a>.</p>
<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>
</body></html>