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>D�tails sur le fonctionnement des serveurs virtuels - 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" /><link rel="stylesheet" type="text/css" href="/style/css/prettify.css" />
12<script src="/style/scripts/prettify.min.js" type="text/javascript">
13</script>
14
15<link href="/images/favicon.ico" rel="shortcut icon" /></head>
16<body id="manual-page"><div id="page-header">
17<p class="menu"><a href="/mod/">Modules</a> | <a href="/mod/directives.html">Directives</a> | <a href="http://wiki.apache.org/httpd/FAQ">FAQ</a> | <a href="/glossary.html">Glossaire</a> | <a href="/sitemap.html">Plan du site</a></p>
18<p class="apache">Serveur Apache HTTP Version 2.4</p>
19<img alt="" src="/images/feather.gif" /></div>
20<div class="up"><a href="./"><img title="&lt;-" alt="&lt;-" src="/images/left.gif" /></a></div>
21<div id="path">
22<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.4</a> &gt; <a href="./">Serveurs virtuels</a></div><div id="page-content"><div id="preamble"><h1>D�tails sur le fonctionnement des serveurs virtuels</h1>
23<div class="toplang">
24<p><span>Langues Disponibles: </span><a href="/en/vhosts/details.html" hreflang="en" rel="alternate" title="English">&nbsp;en&nbsp;</a> |
25<a href="/fr/vhosts/details.html" title="Fran�ais">&nbsp;fr&nbsp;</a> |
26<a href="/ko/vhosts/details.html" hreflang="ko" rel="alternate" title="Korean">&nbsp;ko&nbsp;</a> |
27<a href="/tr/vhosts/details.html" hreflang="tr" rel="alternate" title="T�rk�e">&nbsp;tr&nbsp;</a></p>
28</div>
29
30
31    <p>Ce document vise � expliquer dans le d�tail comment le serveur
32    HTTP Apache proc�de lors du choix de l'utilisation
33    d'un serveur virtuel en fonction d'une requ�te re�ue.</p>
34
35    <p>Il est recommand� de lire la documentation<a href="name-based.html#namevip">
36    Serveurs virtuels � base de nom et serveurs virtuels � base
37    d'adresse IP</a> pour d�terminer quel type de serveur virtuel nous
38    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
39    d'�tudier <a href="examples.html">quelques exemples</a>.</p>
40
41    <p>Si vous voulez entrer dans les d�tails, vous pouvez revenir vers
42    cette page.</p>
43
44</div>
45<div id="quickview"><ul id="toc"><li><img alt="" src="/images/down.gif" /> <a href="#configparsing">Fichier de configuration</a></li>
46<li><img alt="" src="/images/down.gif" /> <a href="#hostmatching">Choix du serveur virtuel</a></li>
47<li><img alt="" src="/images/down.gif" /> <a href="#tips">Trucs et astuces</a></li>
48</ul><h3>Voir aussi</h3><ul class="seealso"><li><a href="ip-based.html">Support des serveurs virtuels � base
49d'adresse IP</a></li><li><a href="name-based.html">Support des serveurs virtuels � base
50de nom</a></li><li><a href="examples.html">Exemples de serveurs virtuels pour une
51configuration courante</a></li><li><a href="mass.html">H�bergement virtuel de masse configur�
52dynamiquement</a></li></ul><ul class="seealso"><li><a href="#comments_section">Commentaires</a></li></ul></div>
53<div class="top"><a href="#page-header"><img alt="top" src="/images/up.gif" /></a></div>
54<div class="section">
55<h2><a name="configparsing" id="configparsing">Fichier de configuration</a></h2>
56
57    <p>Un <em>serveur  principal (main_server)</em> contient toutes
58    les d�finitions qui apparaissent en dehors des sections
59    <code>&lt;VirtualHost&gt;</code>.</p>
60
61    <p>Les serveurs virtuels, aussi
62    appel�s <em>vhosts</em> (pour virtual hosts), sont d�finis par les
63    sections <code class="directive"><a href="/mod/core.html#virtualhost">&lt;VirtualHost&gt;</a></code>.</p>
64
65    <p>Chaque directive <code>VirtualHost</code> comporte une ou
66    plusieurs adresses et des ports optionnels.</p>
67
68    <p>Il est possible d'utiliser des noms d'h�tes dans la d�finition
69    d'un serveur virtuel, mais ils seront r�solus en adresses IP au
70    d�marrage du serveur, et si une r�solution de nom �choue, cette
71    d�finition de serveur virtuel sera ignor�e. Cette m�thode est par
72    cons�quent d�conseill�e.</p>
73
74    <p>L'adresse peut
75    �tre sp�cifi�e sous la forme <code>*</code>, ce qui conviendra � la
76    requ�te si aucun autre serveur virtuel ne poss�de l'adresse IP
77    explicite correspondant � celle de la requ�te.</p>
78
79    <p>L'adresse qui appara�t dans la directive <code>VirtualHost</code>
80    peut �tre associ�e � un port optionnel. Si aucun port n'est
81    sp�cifi�, il s'agit d'un port g�n�rique qui peut aussi �tre sp�cifi�
82    comme <code>*</code>. Le port g�n�rique correspond � toutes les
83    valeurs de port.</p>
84
85    <p>(Il ne faut pas confondre les num�ros de port sur lesquels Apache
86    est en �coute avec les num�ros de port sp�cifi�s dans la directive
87    <code>VirtualHost</code> ; ces derniers ne servent qu'� d�finir le
88    <code>serveur virtuel</code> qui sera s�lectionn� pour traiter la
89    requ�te. Pour d�finir les ports sur lesquels Apache est en �coute,
90    utilisez la directive <code class="directive"><a href="/mod/mpm_common.html#listen">Listen</a></code>).
91    </p>
92
93    <p>L'ensemble des adresses (y compris les r�sultats multiples
94    <code>A</code> issus des requ�tes DNS) est appel� <em>jeu
95    d'adresses</em> du serveur virtuel.</p>
96
97    <p>Apache fait automatiquement sa s�lection � partir de l'en-t�te
98    HTTP <code>Host</code> fourni par le client, lorsque la
99    correspondance la plus exacte du point de vue adresse IP/port a lieu
100    pour plusieurs serveurs virtuels.</p>
101
102    <p>La directive <code class="directive"><a href="/mod/core.html#servername">ServerName</a></code> peut
103    appara�tre en quelque endroit de la d�finition d'un serveur.
104    Cependant, chaque occurrence �crase la pr�c�dente (pour ce serveur).
105    Si aucune directive <code>ServerName</code> n'est sp�cifi�e, le
106    serveur tente de d�terminer le nom du serveur � partir de l'adresse
107    IP.</p>
108
109    <p>Le premier serveur virtuel � base de nom apparaissant dans le
110    fichier de configuration pour une paire IP:port donn�e est
111    significatif car c'est lui qui sera utilis� pour toutes les requ�tes
112    re�ues sur cette adresse IP/port et pour laquelle aucun autre
113    serveur virtuel ne poss�de un ServerName ou un ServerAlias
114    correspondant. Il sera aussi utilis� pour toutes les connexions SSL
115    si le serveur ne supporte pas l'<a class="glossarylink" href="/glossary.html#servernameindication" title="voir glossaire">Indication du nom du serveur</a>.</p>
116
117    <p>Tous les noms sp�cifi�s au sein d'une section
118    <code>VirtualHost</code> sont trait�s comme un
119    <code>ServerAlias</code> (sans caract�res g�n�riques), mais ne sont
120    �cras�s par aucune directive <code>ServerAlias</code>.</p>
121
122    <p>Pour chaque serveur virtuel, diverses valeurs sont initialis�es
123    par d�faut. En particulier&nbsp;:</p>
124
125    <ol>
126      <li>Dans le cas o� un serveur virtuel ne contient pas de directives
127      <code class="directive"><a href="/mod/core.html#serveradmin">ServerAdmin</a></code>,
128      <code class="directive"><a href="/mod/core.html#timeout">Timeout</a></code>,
129      <code class="directive"><a href="/mod/core.html#keepalivetimeout">KeepAliveTimeout</a></code>,
130      <code class="directive"><a href="/mod/core.html#keepalive">KeepAlive</a></code>,
131      <code class="directive"><a href="/mod/core.html#maxkeepaliverequests">MaxKeepAliveRequests</a></code>,
132      <code class="directive"><a href="/mod/mpm_common.html#receivebuffersize">ReceiveBufferSize</a></code>,
133      ou <code class="directive"><a href="/mod/mpm_common.html#sendbuffersize">SendBufferSize</a></code>,
134      alors la valeur de chacun de ces param�tres est h�rit�e de celle du
135      serveur principal. (C'est � dire, h�rit�e de la valeur finale apr�s
136      lecture de la configuration du serveur principal.)</li>
137
138      <li>Les permissions par d�faut sur les r�pertoires de chaque
139      serveur virtuel sont assembl�es avec celles du serveur principal.
140      Elles concernent �galement toutes les informations de configuration
141      par r�pertoire pour tous les modules.</li>
142
143      <li>Les configurations par serveur pour chaque module sont assembl�es
144      � partir de celles du serveur principal.</li>
145    </ol>
146
147    <p>L'essentiel des valeurs de configuration des serveurs virtuels
148    provient de valeurs par d�faut issues du serveur principal.
149    Mais la position dans le fichier de configuration des directives
150    du serveur principal n'a pas d'importance -- l'ensemble de la
151    configuration du serveur principal est lu avant que ces valeurs par
152    d�faut soient appliqu�es aux serveur virtuels. Ainsi, m�me si la
153    d�finition d'une valeur appara�t apr�s celle d'un serveur virtuel,
154    cette valeur peut affecter la definition du serveur virtuel.</p>
155
156    <p>Dans le cas o� le serveur principal n'a pas de <code>ServerName</code>
157    � ce stade, le nom de la machine sur laquelle tourne le programme
158    <code class="program"><a href="/programs/httpd.html">httpd</a></code> est utilis� � sa place. Nous appellerons
159    <em>jeu d'adresses du serveur principal</em> les adresses IP
160    renvoy�es par une r�solution DNS sur le <code>ServerName</code>
161    du serveur principal.</p>
162
163    <p>Pour tous les champs <code>ServerName</code> non d�finis, dans
164    le cas d'une configuration en serveur virtuel par nom, la valeur
165    adopt�e par d�faut est la premi�re adresse donn�e dans la section
166    <code>VirtualHost</code> qui d�finit le serveur virtuel.</p>
167
168    <p>Si un serveur virtuel contient la valeur magique
169    <code>_default_</code>, il fonctionne sur le m�me <code>ServerName</code>
170    que le serveur principal.</p>
171
172</div><div class="top"><a href="#page-header"><img alt="top" src="/images/up.gif" /></a></div>
173<div class="section">
174<h2><a name="hostmatching" id="hostmatching">Choix du serveur virtuel</a></h2>
175
176    <p>� la r�ception d'une requ�te, le serveur proc�de comme suit pour
177    d�terminer quel serveur virtuel utiliser&nbsp;:</p>
178
179    <h3><a name="hashtable" id="hashtable">Recherche de l'adresse IP</a></h3>
180
181    <p>Lors d'une premi�re connexion sur une adresse/port, le serveur
182    recherche toutes les directives <code>VirtualHost</code> qui
183    poss�dent la m�me adresse IP/port.</p>
184
185    <p>S'il n'y a aucune correspondance exacte pour cette adresse/port,
186    la recherche s'effectue sur la valeur g�n�rique (<code>*</code>).</p>
187
188    <p>Si aucune correspondance n'est enfin trouv�e, la requ�te sera
189    servie par le serveur principal.</p>
190
191    <p>S'il existe des d�finitions <code>VirtualHost</code> pour
192    l'adresse IP, l'�tape suivante consiste � d�terminer si nous avons �
193    faire � un serveur virtuel � base de nom ou d'adresse IP.</p>
194
195    
196
197    <h3><a name="ipbased" id="ipbased">Serveur virtuel par IP</a></h3>
198
199    <p>Si une seule section <code>VirtualHost</code> pr�sente la
200    meilleure correspondance avec la paire adresse IP/port, aucune
201    action n'est entreprise et la requ�te est
202    trait�e par le serveur virtuel qui correspond.</p>
203
204    
205
206    <h3><a name="namebased" id="namebased">Serveur virtuel par nom</a></h3>
207
208    <p>Si plusieurs sections <code>VirtualHost</code> pr�sentent la
209    meilleure correspondance avec la paire adresse IP/port, le terme
210    "liste" dans les �tapes suivantes fait r�f�rence � la liste des
211    serveurs virtuels qui correspondent, selon l'ordre dans lequel ils
212    apparaissent dans le fichier de configuration.</p>
213
214    <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>,
215    et si la n�gociation du client SSL inclut l'extension TLS dans le
216    nom d'h�te requis, alors ce nom d'h�te sera utilis� par la suite, tout
217    comme un en-t�te <code>Host:</code> aurait �t� utilis� dans le cas
218    d'une connexion non-SSL. Si ces conditions ne sont pas r�unies, le
219    premier serveur virtuel � base de nom dont l'adresse correspond sera
220    utilis� pour les connexions SSL. Ceci est important car c'est le
221    serveur virtuel qui d�termine quel certificat le serveur va utiliser
222    pour la connexion.</p>
223
224    <p>Si la requ�te contient un en-t�te <code>Host:</code>, on
225    recherche dans la liste le premier serveur virtuel dont le
226    <code>ServerName</code> ou le <code>ServerAlias</code> correspond,
227    et c'est celui-ci qui va traiter la requ�te. Un en-t�te
228    <code>Host:</code> peut comporter un num�ro de port mais Apache
229    l'ignore syst�matiquement et utilise toujours le
230    port sur lequel il a effectivement re�u la requ�te.</p>
231
232    <p>Le premier serveur virtuel du fichier de configuration qui
233    poss�de l'adresse sp�cifi�e est prioritaire et intercepte toutes les
234    requ�tes � destination d'un nom de serveur inconnu, ou toute requ�te
235    sans en-t�te <code>Host:</code> (comme les requ�tes HTTP/1.0).</p>
236
237    
238
239    <h3><a name="persistent" id="persistent">Connexions persistantes</a></h3>
240
241    <p>La <em>recherche par adresse IP</em> d�crite ci-avant n'est faite
242    qu'<em>une fois</em> pour chaque session TCP/IP, alors que la
243    <em>recherche par nom</em> est r�alis�e pour <em>chaque</em> requ�te au
244    cours d'une connexion persistante (KeepAlive). En d'autres termes,
245    il est possible pour un client de faire des requ�tes sur
246    diff�rents serveurs virtuels par nom, au cours d'une unique
247    connexion persistante.</p>
248
249    
250
251    <h3><a name="absoluteURI" id="absoluteURI">URI absolu</a></h3>
252
253    <p>Au cas o� l'URI de la requ�te est absolu, et que son nom de
254    serveur et son port correspondent au serveur principal (ou l'un
255    des serveurs virtuels configur�s), <em>et</em> qu'ils correspondent
256    � l'adresse et au port de la requ�te, alors l'URI est amput�
257    de son pr�fixe protocole/nom de serveur/port et trait� par le
258    serveur correspondant (principal ou virtuel). Si cette correspondance
259    n'existe pas, l'URI reste inchang� et la requ�te est consid�r�e
260    comme une requ�te d'un serveur mandataire (proxy).</p>
261
262
263<h3><a name="observations" id="observations">Observations</a></h3>
264
265    <ul>
266      <li>La s�lection d'un serveur virtuel en fonction de son nom est
267      un processus qui intervient apr�s la s�lection par le serveur du
268      serveur virtuel qui correspond le mieux du point de vue adresse
269      IP/port.</li>
270
271      <li>Si vous ne tenez pas compte de l'adresse IP � laquelle le
272      client s'est connect�, indiquez un caract�re "*" comme adresse
273      pour tous les serveurs virtuels, et la s�lection du serveur
274      virtuel en fonction du nom s'appliquera alors � tous les serveurs
275      virtuels d�finis.</li>
276
277      <li>Les v�rifications sur <code>ServerName</code> et
278      <code>ServerAlias</code> ne sont jamais
279      r�alis�es pour les serveurs virtuels par IP.</li>
280
281      <li>Seul l'ordre des serveurs virtuels par nom
282      pour une adresse donn�e a une importance. Le serveur virtuel
283      par nom qui est pr�sent en premier dans la configuration se
284      voit attribu� la priorit� la plus haute pour les requ�tes
285      arrivant sur son jeu d'adresses IP.</li>
286
287      <li>Le num�ro de port contenu dans l'en-t�te <code>Host:</code> n'est jamais utilis�
288      pour les tests de correspondances. Apache ne prend en compte
289      que le num�ro de port sur lequel le client a envoy� la requ�te.</li>
290
291      <li>Si deux serveurs virtuels partagent la m�me adresse, la
292      s�lection se fera implicitement sur le nom. Il s'agit d'une
293      nouvelle fonctionnalit� de la version 2.3.11.</li>
294
295      <li>Le serveur principal ne sert les requ�tes que
296      lorsque l'adresse IP et le port demand�s par le client ne
297      correspondent � aucun serveur virtuel (y compris un serveur
298      virtuel <code>*</code>). En d'autres termes, le serveur
299      principal n'est utile que pour les combinaisons adresse/port
300      non sp�cifi�es (sauf quand un serveur virtuel <code>_default_</code>
301      correspond au port).</li>
302
303      <li>Il ne faut jamais employer de noms DNS dans des directives
304      <code>VirtualHost</code>, car cela oblige le serveur a s'appuyer
305      sur le DNS au moment du d�marrage. De plus, vous vous exposez
306      � des probl�mes de s�curit� si vous n'avez pas la ma�trise du
307      DNS pour la totalit� de vos domaines. Voir la documentation
308      <a href="/dns-caveats.html">disponible ici</a>, ainsi que
309      les deux points pr�cis�s ci-apr�s.</li>
310
311      <li>Un nom de serveur <code>ServerName</code> devrait toujours
312      �tre indiqu� pour chaque serveur virtuel. Sans cela, une
313      r�solution DNS est n�cessaire pour chaque serveur virtuel.</li>
314      </ul>
315      
316
317</div><div class="top"><a href="#page-header"><img alt="top" src="/images/up.gif" /></a></div>
318<div class="section">
319<h2><a name="tips" id="tips">Trucs et astuces</a></h2>
320
321    <p>En plus des points �voqu�s sur la page des
322    <a href="/dns-caveats.html#tips">probl�mes li�s au DNS</a>,
323    voici quelques points int�ressants&nbsp;:</p>
324
325    <ul>
326      <li>Toujours positionner les d�finitions relatives au serveur
327      principal avant toute d�finition <code>VirtualHost</code>.
328      (Ceci am�liore grandement la lisibilit� de la configuration
329      -- la mani�re dont la configuration est interpr�t�e apr�s la
330      lecture des fichiers ne met pas en �vidence le fait que les
331      d�finitions positionn�es avant et surtout apr�s les serveurs
332      virtuels peuvent impacter le fonctionnement de tous les
333      serveurs virtuels.)</li>
334
335   </ul>
336
337</div></div>
338<div class="bottomlang">
339<p><span>Langues Disponibles: </span><a href="/en/vhosts/details.html" hreflang="en" rel="alternate" title="English">&nbsp;en&nbsp;</a> |
340<a href="/fr/vhosts/details.html" title="Fran�ais">&nbsp;fr&nbsp;</a> |
341<a href="/ko/vhosts/details.html" hreflang="ko" rel="alternate" title="Korean">&nbsp;ko&nbsp;</a> |
342<a href="/tr/vhosts/details.html" hreflang="tr" rel="alternate" title="T�rk�e">&nbsp;tr&nbsp;</a></p>
343</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&amp;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>
344<script type="text/javascript"><!--//--><![CDATA[//><!--
345var comments_shortname = 'httpd';
346var comments_identifier = 'http://httpd.apache.org/docs/2.4/vhosts/details.html';
347(function(w, d) {
348    if (w.location.hostname.toLowerCase() == "httpd.apache.org") {
349        d.write('<div id="comments_thread"><\/div>');
350        var s = d.createElement('script');
351        s.type = 'text/javascript';
352        s.async = true;
353        s.src = 'https://comments.apache.org/show_comments.lua?site=' + comments_shortname + '&page=' + comments_identifier;
354        (d.getElementsByTagName('head')[0] || d.getElementsByTagName('body')[0]).appendChild(s);
355    }
356    else { 
357        d.write('<div id="comments_thread">Comments are disabled for this page at the moment.<\/div>');
358    }
359})(window, document);
360//--><!]]></script></div><div id="footer">
361<p class="apache">Copyright 2014 The Apache Software Foundation.<br />Autoris� sous <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache License, Version 2.0</a>.</p>
362<p class="menu"><a href="/mod/">Modules</a> | <a href="/mod/directives.html">Directives</a> | <a href="http://wiki.apache.org/httpd/FAQ">FAQ</a> | <a href="/glossary.html">Glossaire</a> | <a href="/sitemap.html">Plan du site</a></p></div><script type="text/javascript"><!--//--><![CDATA[//><!--
363if (typeof(prettyPrint) !== 'undefined') {
364    prettyPrint();
365}
366//--><!]]></script>
367</body></html>