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="<-" alt="<-" src="/images/left.gif" /></a></div> 21<div id="path"> 22<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.4</a> > <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"> en </a> | 25<a href="/fr/vhosts/details.html" title="Fran�ais"> fr </a> | 26<a href="/ko/vhosts/details.html" hreflang="ko" rel="alternate" title="Korean"> ko </a> | 27<a href="/tr/vhosts/details.html" hreflang="tr" rel="alternate" title="T�rk�e"> tr </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><VirtualHost></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"><VirtualHost></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 :</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 :</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 :</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"> en </a> | 340<a href="/fr/vhosts/details.html" title="Fran�ais"> fr </a> | 341<a href="/ko/vhosts/details.html" hreflang="ko" rel="alternate" title="Korean"> ko </a> | 342<a href="/tr/vhosts/details.html" hreflang="tr" rel="alternate" title="T�rk�e"> tr </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&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>