<!DOCTYPE html SYSTEM "about:legacy-compat">
<html lang="fr"><head><META http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta content="width=device-width, initial-scale=1" name="viewport">
<!--
        XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
              This file is generated from xml source: DO NOT EDIT
        XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
      -->
<title>D&eacute;tails sur le fonctionnement des serveurs virtuels - Serveur HTTP Apache Version 2.4</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">
<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">
<script src="../style/scripts/prettify.min.js">
</script>

<link href="../images/favicon.png" rel="shortcut icon"></head>
<body id="manual-page"><div id="page-header">
<p class="menu"><a href="../mod/">Modules</a> | <a href="../mod/quickreference.html">Directives</a> | <a href="https://cwiki.apache.org/confluence/display/httpd/FAQ">FAQ</a> | <a href="../glossary.html">Glossaire</a> | <a href="../sitemap.html">Plan du site</a> | <a href="https://bz.apache.org/bugzilla/enter_bug.cgi?product=Apache%20httpd-2">Signaler un bug</a></p>
<p class="apache">Serveur HTTP Apache Version 2.4</p>
<img alt="" src="../images/feather.png"></div>
<div class="up"><a href="./"><img title="<-" alt="<-" src="../images/left.gif"></a></div>
<div id="path">
<a href="https://www.apache.org/">Apache</a> &gt; <a href="https://httpd.apache.org/">Serveur HTTP</a> &gt; <a href="https://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&eacute;tails sur le fonctionnement des serveurs virtuels</h1>
<button aria-label="Toggle language list" class="lang-toggle"><svg xmlns="http://www.w3.org/2000/svg" stroke-width="2" stroke="currentColor" fill="none" viewBox="0 0 24 24" height="16" width="16"><circle r="10" cy="12" cx="12"/><line y2="12" x2="22" y1="12" x1="2"/><path d="M12 2a15.3 15.3 0 0 1 4 10 15.3 15.3 0 0 1-4 10 15.3 15.3 0 0 1-4-10 15.3 15.3 0 0 1 4-10z"/></svg></button>
<div class="toplang">
<p><span>Langues Disponibles: </span><a href="../en/vhosts/details.html" hreflang="en" rel="alternate" title="English">&nbsp;en&nbsp;</a> |
<a href="../fr/vhosts/details.html" title="Fran&ccedil;ais">&nbsp;fr&nbsp;</a> |
<a href="../ko/vhosts/details.html" hreflang="ko" rel="alternate" title="Korean">&nbsp;ko&nbsp;</a> |
<a href="../tr/vhosts/details.html" hreflang="tr" rel="alternate" title="T&uuml;rk&ccedil;e">&nbsp;tr&nbsp;</a></p>
</div>


    <p>Ce document vise &agrave; expliquer dans le d&eacute;tail comment le serveur
    HTTP Apache proc&egrave;de lors du choix de l'utilisation
    d'un serveur virtuel en fonction d'une requ&ecirc;te re&ccedil;ue.</p>

    <p>Il est recommand&eacute; de lire la documentation<a href="name-based.html#namevip">
    Serveurs virtuels &agrave; base de nom et serveurs virtuels &agrave; base
    d'adresse IP</a> pour d&eacute;terminer quel type de serveur virtuel nous
    convient le mieux, puis de lire les documentations <a href="name-based.html">serveurs virtuels &agrave; base de nom</a> ou <a href="ip-based.html">serveurs virtuels &agrave; base d'adresse IP</a>, et enfin
    d'&eacute;tudier <a href="examples.html">quelques exemples</a>.</p>

    <p>Si vous voulez entrer dans les d&eacute;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>
<li><img alt="" src="../images/down.gif"> <a href="#hostmatching">Choix du serveur virtuel</a></li>
<li><img alt="" src="../images/down.gif"> <a href="#tips">Trucs et astuces</a></li>
</ul><h3>Voir aussi</h3><ul class="seealso"><li><a href="ip-based.html">Support des serveurs virtuels &agrave; base
d'adresse IP</a></li><li><a href="name-based.html">Support des serveurs virtuels &agrave; base
de nom</a></li><li><a href="examples.html">Exemples de serveurs virtuels pour une
configuration courante</a></li><li><a href="mass.html">H&eacute;bergement virtuel de masse configur&eacute;
dynamiquement</a></li></ul></div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif"></a></div>
<div class="section">
<h2 id="configparsing">Fichier de configuration <a title="Lien permanent" href="#configparsing" class="permalink">&para;</a></h2>

    <p>Un <em>serveur  principal (main_server)</em> contient toutes
    les d&eacute;finitions qui apparaissent en dehors des sections
    <code>&lt;VirtualHost&gt;</code>.</p>

    <p>Les serveurs virtuels, aussi
    appel&eacute;s <em>vhosts</em> (pour virtual hosts), sont d&eacute;finis par les
    sections <code class="directive"><a href="../mod/core.html#virtualhost">&lt;VirtualHost&gt;</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&ocirc;tes dans la d&eacute;finition
    d'un serveur virtuel, mais ils seront r&eacute;solus en adresses IP au
    d&eacute;marrage du serveur, et si une r&eacute;solution de nom &eacute;choue, cette
    d&eacute;finition de serveur virtuel sera ignor&eacute;e. Cette m&eacute;thode est par
    cons&eacute;quent d&eacute;conseill&eacute;e.</p>

    <p>L'adresse peut
    &ecirc;tre sp&eacute;cifi&eacute;e sous la forme <code>*</code>, ce qui conviendra &agrave; la
    requ&ecirc;te si aucun autre serveur virtuel ne poss&egrave;de l'adresse IP
    explicite correspondant &agrave; celle de la requ&ecirc;te.</p>

    <p>L'adresse qui appara&icirc;t dans la directive <code>VirtualHost</code>
    peut &ecirc;tre associ&eacute;e &agrave; un port optionnel. Si aucun port n'est
    sp&eacute;cifi&eacute;, il s'agit d'un port g&eacute;n&eacute;rique qui peut aussi &ecirc;tre sp&eacute;cifi&eacute;
    comme <code>*</code>. Le port g&eacute;n&eacute;rique correspond &agrave; toutes les
    valeurs de port.</p>

    <p>(Il ne faut pas confondre les num&eacute;ros de port sur lesquels Apache
    est en &eacute;coute avec les num&eacute;ros de port sp&eacute;cifi&eacute;s dans la directive
    <code>VirtualHost</code> ; ces derniers ne servent qu'&agrave; d&eacute;finir le
    <code>serveur virtuel</code> qui sera s&eacute;lectionn&eacute; pour traiter la
    requ&ecirc;te. Pour d&eacute;finir les ports sur lesquels Apache est en &eacute;coute,
    utilisez la directive <code class="directive"><a href="../mod/mpm_common.html#listen">Listen</a></code>).
    </p>

    <p>L'ensemble des adresses (y compris les r&eacute;sultats multiples
    <code>A</code> issus des requ&ecirc;tes DNS) est appel&eacute; <em>jeu
    d'adresses</em> du serveur virtuel.</p>

    <p>Apache fait automatiquement sa s&eacute;lection &agrave; partir de l'en-t&ecirc;te
    HTTP <code>Host</code> fourni par le client, lorsque la
    correspondance la plus exacte du point de vue adresse IP/port a lieu
    pour plusieurs serveurs virtuels.</p>

    <p>La directive <code class="directive"><a href="../mod/core.html#servername">ServerName</a></code> peut
    appara&icirc;tre en quelque endroit de la d&eacute;finition d'un serveur.
    Cependant, chaque occurrence &eacute;crase la pr&eacute;c&eacute;dente (pour ce serveur).
    Si aucune directive <code>ServerName</code> n'est sp&eacute;cifi&eacute;e, le
    serveur tente de d&eacute;terminer le nom du serveur &agrave; partir de l'adresse
    IP.</p>

    <p>Le premier serveur virtuel &agrave; base de nom apparaissant dans le
    fichier de configuration pour une paire IP:port donn&eacute;e est
    significatif car c'est lui qui sera utilis&eacute; pour toutes les requ&ecirc;tes
    re&ccedil;ues sur cette adresse IP/port et pour laquelle aucun autre
    serveur virtuel ne poss&egrave;de un ServerName ou un ServerAlias
    correspondant. Il sera aussi utilis&eacute; 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>Tous les noms sp&eacute;cifi&eacute;s au sein d'une section
    <code>VirtualHost</code> sont trait&eacute;s comme un
    <code>ServerAlias</code> (sans caract&egrave;res g&eacute;n&eacute;riques), mais ne sont
    &eacute;cras&eacute;s par aucune directive <code>ServerAlias</code>.</p>

    <p>Pour chaque serveur virtuel, diverses valeurs sont initialis&eacute;es
    par d&eacute;faut. En particulier&nbsp;:</p>

    <ol>
      <li>Dans le cas o&ugrave; un serveur virtuel ne contient pas de directives
      <code class="directive"><a href="../mod/core.html#serveradmin">ServerAdmin</a></code>,
      <code class="directive"><a href="../mod/core.html#timeout">Timeout</a></code>,
      <code class="directive"><a href="../mod/core.html#keepalivetimeout">KeepAliveTimeout</a></code>,
      <code class="directive"><a href="../mod/core.html#keepalive">KeepAlive</a></code>,
      <code class="directive"><a href="../mod/core.html#maxkeepaliverequests">MaxKeepAliveRequests</a></code>,
      <code class="directive"><a href="../mod/mpm_common.html#receivebuffersize">ReceiveBufferSize</a></code>,
      ou <code class="directive"><a href="../mod/mpm_common.html#sendbuffersize">SendBufferSize</a></code>,
      alors la valeur de chacun de ces param&egrave;tres est h&eacute;rit&eacute;e de celle du
      serveur principal. (C'est &agrave; dire, h&eacute;rit&eacute;e de la valeur finale apr&egrave;s
      lecture de la configuration du serveur principal.)</li>

      <li>Les permissions par d&eacute;faut sur les r&eacute;pertoires de chaque
      serveur virtuel sont assembl&eacute;es avec celles du serveur principal.
      Elles concernent &eacute;galement toutes les informations de configuration
      par r&eacute;pertoire pour tous les modules.</li>

      <li>Les configurations par serveur pour chaque module sont assembl&eacute;es
      &agrave; partir de celles du serveur principal.</li>
    </ol>

    <p>L'essentiel des valeurs de configuration des serveurs virtuels
    provient de valeurs par d&eacute;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&eacute;faut soient appliqu&eacute;es aux serveur virtuels. Ainsi, m&ecirc;me si la
    d&eacute;finition d'une valeur appara&icirc;t apr&egrave;s celle d'un serveur virtuel,
    cette valeur peut affecter la definition du serveur virtuel.</p>

    <p>Dans le cas o&ugrave; le serveur principal n'a pas de <code>ServerName</code>
    &agrave; 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&eacute; &agrave; sa place. Nous appellerons
    <em>jeu d'adresses du serveur principal</em> les adresses IP
    renvoy&eacute;es par une r&eacute;solution DNS sur le <code>ServerName</code>
    du serveur principal.</p>

    <p>Pour tous les champs <code>ServerName</code> non d&eacute;finis, dans
    le cas d'une configuration en serveur virtuel par nom, la valeur
    adopt&eacute;e par d&eacute;faut est la premi&egrave;re adresse donn&eacute;e dans la section
    <code>VirtualHost</code> qui d&eacute;finit le serveur virtuel.</p>

    <p>Si un serveur virtuel contient la valeur magique
    <code>_default_</code>, il fonctionne sur le m&ecirc;me <code>ServerName</code>
    que le serveur principal.</p>

</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif"></a></div>
<div class="section">
<h2 id="hostmatching">Choix du serveur virtuel <a title="Lien permanent" href="#hostmatching" class="permalink">&para;</a></h2>

    <p>Le serveur d&eacute;termine le serveur virtuel &agrave; utiliser pour une requ&ecirc;te en
    deux phases&nbsp;: une recherche bas&eacute;e sur l&rsquo;IP lorsque la connexion est &eacute;tablie,
    puis une recherche optionnelle &agrave; base de nom &agrave; la r&eacute;ception de la requ&ecirc;te.</p>

    <h3 id="hashtable">Phase 1&nbsp;: recherche sur l&rsquo;adresse IP et
    le port</h3>

    <p>Lorsqu&rsquo;une connexion est &eacute;tablie, le serveur recherche l&rsquo;adresse IP et le
    port de destination dans sa liste d&rsquo;adresses/ports des <code>serveurs
    virtuels</code>. Cette recherche respecte un ordre de priorit&eacute; strict&nbsp;:</p>

    <table class="bordered"><tr class="header"><th>Priorit&eacute;</th><th>Type de correspondance</th><th>Exemple</th></tr>
<tr><td>1</td><td>Adresse IP et port exacts</td>
        <td><code>&lt;VirtualHost 10.0.0.1:80&gt;</code></td></tr>
<tr class="odd"><td>2</td><td>Adresse IP exacte, port g&eacute;n&eacute;rique</td>
        <td><code>&lt;VirtualHost 10.0.0.1:*&gt;</code></td></tr>
<tr><td>3</td><td>Adresse IP g&eacute;n&eacute;rique (<code>*</code>), port exact</td>
        <td><code>&lt;VirtualHost *:80&gt;</code></td></tr>
<tr class="odd"><td>4</td><td>Adresse IP et port g&eacute;n&eacute;riques</td>
        <td><code>&lt;VirtualHost *:*&gt;</code></td></tr>
<tr><td>5</td><td>Serveur principal</td>
        <td>(aucun <code>serveur virtuel</code> ne correspond)</td></tr>
</table>

    <div class="note"><h3>Important</h3>
    <p>Le serveur utilise la <em>premi&egrave;re correspondance trouv&eacute;e</em> en suivant
    cet ordre. Lorsqu&rsquo;une correspondance est trouv&eacute;e &agrave; un niveau de priorit&eacute;
    donn&eacute;, aucun niveau de priorit&eacute; inf&eacute;rieur n&rsquo;est consid&eacute;r&eacute; &mdash; m&ecirc;me si un
    serveur virtuel de priorit&eacute; inf&eacute;rieure poss&egrave;de un <code>ServerName</code>
    qui correspond au contenu de l&rsquo;en-t&ecirc;te <code>Host</code> de la requ&ecirc;te. La
    recherche &agrave; base de nom (Phase 2) n&rsquo;intervient que lorsque deux serveurs
    virtuels de m&ecirc;me niveau de priorit&eacute; peuvent correspondre.</p>
    </div>

    <p>S'il existe des d&eacute;finitions <code>VirtualHost</code> pour
    l'adresse IP, l'&eacute;tape suivante consiste &agrave; d&eacute;terminer si nous avons &agrave;
    faire &agrave; un serveur virtuel &agrave; base de nom ou d'adresse IP.</p>

    

    <h3 id="ipbased">Serveur virtuel par IP</h3>

    <p>Si la Phase 1 ne trouve qu&rsquo;un seul <code>serveur virtuel</code>
    correspondant, la requ&ecirc;te est servie directement depuis ce dernier sans
    effectuer d&rsquo;autre recherche.</p>

    

    <h3 id="namebased">Phase 2&nbsp;: recherche &agrave; base de nom</h3>

    <p>Si la phase 1 trouve plusieurs <code>serveurs virtuels</code>
    correspondants de m&ecirc;me niveau de priorit&eacute;, le serveur effectue une recherche
    &agrave; base de nom parmi ces serveurs virtuels en utilisant l&rsquo;en-t&ecirc;te
    <code>Host:</code> de la requ&ecirc;te (ou le nom d&rsquo;h&ocirc;te SNI pour les connexions
    SSL).</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&eacute;gociation du client SSL inclut l'extension TLS dans le
    nom d'h&ocirc;te requis, alors ce nom d'h&ocirc;te sera utilis&eacute; par la suite, tout
    comme un en-t&ecirc;te <code>Host:</code> aurait &eacute;t&eacute; utilis&eacute; dans le cas
    d'une connexion non-SSL. Si ces conditions ne sont pas r&eacute;unies, le
    premier serveur virtuel &agrave; base de nom dont l'adresse correspond sera
    utilis&eacute; pour les connexions SSL. Ceci est important car c'est le
    serveur virtuel qui d&eacute;termine quel certificat le serveur va utiliser
    pour la connexion.</p>

    <p>La recherche de serveurs virtuels correspondants s&rsquo;effectue selon leur
    ordre d&rsquo;apparition dans le fichier de configuration&nbsp;:</p>

    <ol>
    <li>Les contenus des directives <code class="directive"><a href="../mod/core.html#servername">ServerName</a></code> et <code class="directive"><a href="../mod/core.html#serveralias">ServerAlias</a></code> de chaque serveur virtuel sont
    compar&eacute;s au nom d&rsquo;h&ocirc;te de la requ&ecirc;te. La premi&egrave;re correspondance est
    retenue.</li>

    <li>Si aucun <code>ServerName</code> ou <code>ServerAlias</code> ne
    correspond, c&rsquo;est le <em>premier serveur virtuel de la liste</em> qui sera
    choisi. Il s&rsquo;agit du <em>serveur virtuel &agrave; base de nom par d&eacute;faut</em> pour
    cette combinaison adresse/port.</li>
    </ol>

    <p>Un champ d&rsquo;en-t&ecirc;te <code>Host:</code> peut contenir un num&eacute;ro de port,
    mais httpd l&rsquo;ignore toujours et effectue sa recherche de correspondance avec
    le port r&eacute;el auquel le client a envoy&eacute; sa requ&ecirc;te.</p>

    <p>Si la requ&ecirc;te ne poss&egrave;de pas d&rsquo;en-t&ecirc;te <code>Host:</code> (comme les
    requ&ecirc;tes HTTP/1.0), le premier serveur virtuel qui correspond est choisi.
    Mais si une directive <code class="directive"><a href="../mod/core.html#serverpath">ServerPath</a></code> est
    configur&eacute;e pour un des serveurs virtuels correspondants et que l&rsquo;URL de la
    requ&ecirc;te correspond &agrave; ce chemin, la requ&ecirc;te sera servie depuis ce serveur
    virtuel. Il s&rsquo;agit d&rsquo;un m&eacute;canisme patrimonial pour les clients HTTP/1.0&nbsp;;
    voir l&rsquo;exemple avec <a href="examples.html#serverpath">ServerPath</a> pour
    les d&eacute;tails.</p>
    

    <h3 id="persistent">Connexions persistantes</h3>

    <p>La <em>recherche par adresse IP</em> (Phase 1) n'est effectu&eacute;e qu'<em>une
    fois</em> pour une session TCP/IP particuli&egrave;re, alors que la recherche par
    nom (Phase 2) est effectu&eacute;e pour <em>chaque</em> requ&ecirc;te au cours d'une
    connexion persistante (KeepAlive). En d'autres termes, il est possible pour
    un client de faire des requ&ecirc;tes pour des pages sur diff&eacute;rents serveurs
    virtuels par nom, au cours d'une unique connexion persistante.</p>

    

    <h3 id="absoluteURI">URI absolu</h3>

    <p>Au cas o&ugrave; l'URI de la requ&ecirc;te est absolu, et que son nom de
    serveur et son port correspondent au serveur principal (ou l'un
    des serveurs virtuels configur&eacute;s), <em>et</em> qu'ils correspondent
    &agrave; l'adresse et au port de la requ&ecirc;te, alors l'URI est amput&eacute;
    de son pr&eacute;fixe protocole/nom de serveur/port et trait&eacute; par le
    serveur correspondant (principal ou virtuel). Si cette correspondance
    n'existe pas, l'URI reste inchang&eacute; et la requ&ecirc;te est consid&eacute;r&eacute;e
    comme une requ&ecirc;te d'un serveur mandataire (proxy).</p>


<h3 id="observations">Observations</h3>

    <ul>
      <li>La s&eacute;lection d'un serveur virtuel en fonction de son nom est un
      processus qui intervient <em>apr&egrave;s</em> que le serveur a cern&eacute; la liste de
      candidats qui correspondent du point de vue adresse IP.</li>

      <li>Si vous ne tenez pas compte de l'adresse IP &agrave; laquelle le client s'est
      connect&eacute;, indiquez un caract&egrave;re "<code>*</code>" comme adresse pour tous
      les serveurs virtuels, et la s&eacute;lection du serveur virtuel en fonction du
      nom s'appliquera alors &agrave; tous les serveurs virtuels d&eacute;finis.</li>

      <li>Les v&eacute;rifications sur <code>ServerName</code> et
      <code>ServerAlias</code> ne sont jamais r&eacute;alis&eacute;es pour les serveurs
      virtuels par IP (celles pour lesquelles il n&rsquo;y a qu&rsquo;un seul serveur
      virtuel pour cette adresse IP/port).</li>

      <li>Seul l'ordre des serveurs virtuels par nom
      pour une adresse donn&eacute;e a une importance. Le serveur virtuel
      par nom qui est pr&eacute;sent en premier dans la configuration se
      voit attribu&eacute; la priorit&eacute; la plus haute pour les requ&ecirc;tes
      arrivant sur son jeu d'adresses IP.</li>

      <li>Le num&eacute;ro de port contenu dans l'en-t&ecirc;te <code>Host:</code> n'est jamais utilis&eacute;
      pour les tests de correspondances. Apache ne prend en compte
      que le num&eacute;ro de port sur lequel le client a envoy&eacute; la requ&ecirc;te.</li>

      <li>Si deux serveurs virtuels partagent la m&ecirc;me adresse, la
      s&eacute;lection se fera implicitement sur le nom. Il s'agit d'une
      nouvelle fonctionnalit&eacute; de la version 2.3.11.</li>

      <li>Le serveur principal ne sert les requ&ecirc;tes que
      lorsque l'adresse IP et le port demand&eacute;s par le client ne
      correspondent &agrave; aucun serveur virtuel (y compris un serveur
      virtuel <code>*</code>). En d'autres termes, le serveur
      principal n'est utile que pour les combinaisons adresse/port
      non sp&eacute;cifi&eacute;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&eacute;marrage. De plus, vous vous exposez
      &agrave; des probl&egrave;mes de s&eacute;curit&eacute; si vous n'avez pas la ma&icirc;trise du
      DNS pour la totalit&eacute; de vos domaines. Voir la documentation
      <a href="../dns-caveats.html">disponible ici</a>, ainsi que
      les deux points pr&eacute;cis&eacute;s ci-apr&egrave;s.</li>

      <li>Un nom de serveur <code>ServerName</code> devrait toujours
      &ecirc;tre indiqu&eacute; pour chaque serveur virtuel. Sans cela, une
      r&eacute;solution DNS est n&eacute;cessaire pour chaque serveur virtuel.</li>
      </ul>
      

</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif"></a></div>
<div class="section">
<h2 id="tips">Trucs et astuces <a title="Lien permanent" href="#tips" class="permalink">&para;</a></h2>

    <p>En plus des points &eacute;voqu&eacute;s sur la page des
    <a href="../dns-caveats.html#tips">probl&egrave;mes li&eacute;s au DNS</a>,
    voici quelques points int&eacute;ressants&nbsp;:</p>

    <ul>
      <li>Toujours positionner les d&eacute;finitions relatives au serveur
      principal avant toute d&eacute;finition <code>VirtualHost</code>.
      (Ceci am&eacute;liore grandement la lisibilit&eacute; de la configuration
      -- la mani&egrave;re dont la configuration est interpr&eacute;t&eacute;e apr&egrave;s la
      lecture des fichiers ne met pas en &eacute;vidence le fait que les
      d&eacute;finitions positionn&eacute;es avant et surtout apr&egrave;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">&nbsp;en&nbsp;</a> |
<a href="../fr/vhosts/details.html" title="Fran&ccedil;ais">&nbsp;fr&nbsp;</a> |
<a href="../ko/vhosts/details.html" hreflang="ko" rel="alternate" title="Korean">&nbsp;ko&nbsp;</a> |
<a href="../tr/vhosts/details.html" hreflang="tr" rel="alternate" title="T&uuml;rk&ccedil;e">&nbsp;tr&nbsp;</a></p>
</div><div id="footer">
<p class="apache">Copyright 2026 The Apache Software Foundation.<br>Autoris&eacute; sous <a href="https://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/quickreference.html">Directives</a> | <a href="https://cwiki.apache.org/confluence/display/httpd/FAQ">FAQ</a> | <a href="../glossary.html">Glossaire</a> | <a href="../sitemap.html">Plan du site</a> | <a href="https://bz.apache.org/bugzilla/enter_bug.cgi?product=Apache%20httpd-2">Signaler un bug</a></p></div><script><!--//--><![CDATA[//><!--
if (typeof(prettyPrint) !== 'undefined') {
    prettyPrint();
}
var langToggle = document.querySelector('.lang-toggle');
var topLang = document.querySelector('.toplang');
if (langToggle && topLang) {
    langToggle.addEventListener('click', function() { topLang.classList.toggle('open'); });
}
var qv = document.getElementById('quickview');
if (qv) {
    document.body.appendChild(qv);
    var qvBtn = document.createElement('button');
    qvBtn.className = 'qv-toggle';
    qvBtn.setAttribute('aria-label', 'Toggle page navigation');
    qvBtn.innerHTML = '&#9776;';
    document.body.appendChild(qvBtn);
    qvBtn.addEventListener('click', function() {
        var isOpen = qv.classList.toggle('open');
        if (isOpen) {
            qv.style.top = window.scrollY + 10 + 'px';
        }
    });
    window.addEventListener('scroll', function() { qv.classList.remove('open'); });
}
//--><!]]></script>
</body></html>