]> granicus.if.org Git - apache/blob - docs/manual/vhosts/details.html.fr
* Update transformation
[apache] / docs / manual / vhosts / details.html.fr
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" />
12 <link href="../images/favicon.ico" rel="shortcut icon" /></head>
13 <body id="manual-page"><div id="page-header">
14 <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>
15 <p class="apache">Serveur Apache HTTP Version 2.3</p>
16 <img alt="" src="../images/feather.gif" /></div>
17 <div class="up"><a href="./"><img title="&lt;-" alt="&lt;-" src="../images/left.gif" /></a></div>
18 <div id="path">
19 <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.3</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>
20 <div class="toplang">
21 <p><span>Langues Disponibles: </span><a href="../en/vhosts/details.html" hreflang="en" rel="alternate" title="English">&nbsp;en&nbsp;</a> |
22 <a href="../fr/vhosts/details.html" title="Français">&nbsp;fr&nbsp;</a> |
23 <a href="../ko/vhosts/details.html" hreflang="ko" rel="alternate" title="Korean">&nbsp;ko&nbsp;</a> |
24 <a href="../tr/vhosts/details.html" hreflang="tr" rel="alternate" title="Türkçe">&nbsp;tr&nbsp;</a></p>
25 </div>
26
27
28     <p>Le code gérant les serveurs virtuels a été réécrit à partir de
29     zéro dans <strong>Apache 1.3</strong>. Ce document vise à expliquer
30     dans le détail comment Apache procède lors du choix de l'utilisation
31     d'un serveur virtuel en fonction d'une requête reçue. L'apparition
32     de la directive  <code class="directive"><a href="../mod/core.html#namevirtualhost">NameVirtualHost</a></code>
33     a rendu beaucoup plus facile et plus sûre la configuration des
34     serveurs virtuels par rapport aux versions précédant la 1.3.</p>
35
36     <p>Si vous voulez juste <cite>que ça marche</cite> sans en
37     comprendre le fonctionnement, voici <a href="examples.html">quelques
38     exemples</a>.</p>
39
40 </div>
41 <div id="quickview"><ul id="toc"><li><img alt="" src="../images/down.gif" /> <a href="#configparsing">Interprétation des fichiers
42 de configuration</a></li>
43 <li><img alt="" src="../images/down.gif" /> <a href="#hostmatching">Choix du serveur virtuel</a></li>
44 <li><img alt="" src="../images/down.gif" /> <a href="#tips">Trucs et astuces</a></li>
45 </ul></div>
46 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
47 <div class="section">
48 <h2><a name="configparsing" id="configparsing">Interprétation des fichiers
49 de configuration</a></h2>
50
51     <p>Un <em>serveur  principal (main_server)</em> contient toutes
52     les définitions qui apparaissent en dehors des sections
53     <code>&lt;VirtualHost&gt;</code>. Les serveurs virtuels, aussi
54     appelés <em>vhosts</em> (pour virtual hosts), sont définis par les
55     sections <code class="directive"><a href="../mod/core.html#virtualhost">&lt;VirtualHost&gt;</a></code>.</p>
56
57     <p>Les directives
58     <code class="directive"><a href="../mod/mpm_common.html#listen">Listen</a></code>,
59     <code class="directive"><a href="../mod/core.html#servername">ServerName</a></code>,
60     <code class="directive"><a href="../mod/core.html#serverpath">ServerPath</a></code>,
61     et <code class="directive"><a href="../mod/core.html#serveralias">ServerAlias</a></code>
62     peuvent être placées n'importe où dans le cadre de définition d'un
63     serveur. Cependant, chaque fois que l'une d'elles est lue, elle écrase
64     ses instances précédentes (dans le contexte du même serveur).</p>
65
66     <p>La valeur par défaut du champ <code>Listen</code> pour le serveur
67     principal est de 80. Le serveur principal n'a pas de valeur par
68     défaut pour <code>ServerPath</code> ni pour <code>ServerAlias</code>.
69     La valeur par défaut de <code>ServerName</code> est déduite à partir
70     de l'adresses IP du serveur.</p>
71
72     <p>La directive Listen associée au serveur principal a deux utilités.
73     La première détermine le port réseau sur lequel Apache va écouter.
74     La deuxième spécifie le port qui sera utilisé dans les URIs absolus
75     lors des redirections.</p>
76
77     <p>À la différence du serveur principal, les ports des serveurs
78     virtuels <em>n</em>'affectent <em>pas</em> les ports sur lesquels
79     Apache se met à l'écoute.</p>
80
81     <p>Chaque adresse incluse dans une directive <code>VirtualHost</code>
82     peut disposer d'un port optionnel. Si le port n'est pas précisé, il
83     prend par défaut la dernière valeur de <code>Listen</code> lue dans
84     la configuration du serveur principal. Le port particulier
85     <code>*</code> représente un joker qui correspond à tous les ports.
86     L'ensemble des adresses (y compris les résultats multiples
87     <code>A</code> issus des requêtes DNS) est appelé <em>jeu
88     d'adresses</em> du serveur virtuel.</p>
89
90     <p>À moins qu'une directive
91     <code class="directive"><a href="../mod/core.html#namevirtualhost">NameVirtualHost</a></code> ne soit utilisée
92     pour une adresse IP spécifique, le premier serveur virtuel avec
93     cette adresse est considéré comme un <em>serveur virtuel par-IP</em>.
94     L'adresse IP peut également prendre la valeur joker <code>*</code>.</p>
95
96     <p>Dans les cas où l'on souhaite utiliser un <em>serveur virtuel
97     par nom</em>, la directive <code>NameVirtualHost</code> <em>doit</em>
98     apparaître avec l'adresse IP choisie. En d'autres termes, vous devez
99     spécifier dans votre fichier de configuration l'adresse IP des noms
100     de domaine (CNAME) de vos serveurs virtuels par nom au moyen de
101     la directive <code>NameVirtualHost</code>.</p>
102
103     <p>On peut utiliser plusieurs directives <code>NameVirtualHost</code>
104     pour un groupe de directives <code>VirtualHost</code>, mais seule
105     une directive <code>NameVirtualHost</code> doit être utilisée pour
106     chaque couple IP:port donné.</p>
107
108     <p>L'ordre d'apparition des directives <code>NameVirtualHost</code>
109     et <code>VirtualHost</code> est sans importance, ce qui fait que
110     les deux exemples suivants ont des effets identiques (seul l'ordre
111     des directives <code>VirtualHost</code> pour <em>un</em> jeu
112     d'adresses est important, voir ci-dessous)&nbsp;:</p>
113
114 <table><tr>
115 <td><div class="example"><p><code>
116   NameVirtualHost 111.22.33.44<br />
117   &lt;VirtualHost 111.22.33.44&gt;<br />
118   # serveur A<br />
119   ...<br />
120   &lt;/VirtualHost&gt;<br />
121   &lt;VirtualHost 111.22.33.44&gt;<br />
122   # serveur B<br />
123   ...<br />
124   &lt;/VirtualHost&gt;<br />
125   <br />
126   NameVirtualHost 111.22.33.55<br />
127   &lt;VirtualHost 111.22.33.55&gt;<br />
128   # serveur C<br />
129   ...<br />
130   &lt;/VirtualHost&gt;<br />
131   &lt;VirtualHost 111.22.33.55&gt;<br />
132   # serveur D<br />
133   ...<br />
134   &lt;/VirtualHost&gt;
135 </code></p></div></td>
136 <td><div class="example"><p><code>
137   &lt;VirtualHost 111.22.33.44&gt;<br />
138   # serveur A<br />
139   &lt;/VirtualHost&gt;<br />
140   &lt;VirtualHost 111.22.33.55&gt;<br />
141   # serveur C<br />
142   ...<br />
143   &lt;/VirtualHost&gt;<br />
144   &lt;VirtualHost 111.22.33.44&gt;<br />
145   # serveur B<br />
146   ...<br />
147   &lt;/VirtualHost&gt;<br />
148   &lt;VirtualHost 111.22.33.55&gt;<br />
149   # serveur D<br />
150   ...<br />
151   &lt;/VirtualHost&gt;<br />
152   <br />
153   NameVirtualHost 111.22.33.44<br />
154   NameVirtualHost 111.22.33.55<br />
155   <br />
156 </code></p></div></td>
157 </tr></table>
158
159
160     <p>(Il est conseillé d'adopter le choix de gauche pour faciliter
161     la lisibilité des fichiers de configuration.)</p>
162
163     <p>Après la lecture de la directive <code>VirtualHost</code>, le
164     serveur virtuel se voit attribuer une valeur <code>Listen</code>
165     par défaut qui est la valeur du port associé au premier nom spécifié
166     dans sa directive <code>VirtualHost</code>.</p>
167
168     <p>La liste complète des noms d'une directive <code>VirtualHost</code>
169     est gérée exactement comme des <code>ServerAlias</code> (mais ne
170     sont pas écrasés par d'autres <code>ServerAlias</code>) si tous
171     les noms sont résolus dans ce jeu d'adresse. À noter que les états
172     <code>Listen</code> de ce serveur virtuel sont sans incidence sur
173     les ports attibués au jeu d'adresses.</p>
174
175     <p>Pendant la phase d'initialisation, une liste de chaque adresse
176     IP est générée et introduite dans une table de 'hash'. Si une
177     adresse IP est utilisée dans une directive <code>NameVirtualHost</code>,
178     cette liste contient les noms des serveurs virtuels pour cette
179     adresse. Si aucun serveur virtuel n'est défini pour cette adresse,
180     la directive <code>NameVirtualHost</code> est ignorée et un message
181     est envoyé au journal d'erreurs. Quand un serveur virtuel par IP
182     est utilisé, la table de 'hash' reste vide.</p>
183
184     <p>La fonction de 'hash' étant rapide, le temps d'exécution d'un
185     'hash' sur une adresse IP lors d'une requête est minimale et
186     quasiment imperceptible. De plus, la table est optimisée pour les
187     adresses IP dont le dernier octet est le seul à changer.</p>
188
189     <p>Pour chaque serveur virtuel, diverses valeurs sont initialisées
190     par défaut. En particulier&nbsp;:</p>
191
192     <ol>
193       <li>Dans le cas où un serveur virtuel ne contient pas de directives
194       <code class="directive"><a href="../mod/core.html#serveradmin">ServerAdmin</a></code>,
195       <code class="directive"><a href="../mod/core.html#resourceconfig">ResourceConfig</a></code>,
196       <code class="directive"><a href="../mod/core.html#accessconfig">AccessConfig</a></code>,
197       <code class="directive"><a href="../mod/core.html#timeout">Timeout</a></code>,
198       <code class="directive"><a href="../mod/core.html#keepalivetimeout">KeepAliveTimeout</a></code>,
199       <code class="directive"><a href="../mod/core.html#keepalive">KeepAlive</a></code>,
200       <code class="directive"><a href="../mod/core.html#maxkeepaliverequests">MaxKeepAliveRequests</a></code>,
201       <code class="directive"><a href="../mod/core.html#receivebuffersize">ReceiveBufferSize</a></code>,
202       ou <code class="directive"><a href="../mod/core.html#sendbuffersize">SendBufferSize</a></code>,
203       alors la valeur de chacun de ces paramètres est héritée de celle du
204       serveur principal. (C'est à dire, héritée de la valeur finale après
205       lecture de la configuration du serveur principal.)</li>
206
207       <li>Les permissions par défaut sur les répertoires de chaque
208       serveur virtuel sont assemblées avec celles du serveur principal.
209       Elles concernent également toutes les informations de configuration
210       par répertoire pour tous les modules.</li>
211
212       <li>Les configurations par serveur pour chaque module sont assemblées
213       à partir de celles du serveur principal.</li>
214     </ol>
215
216     <p>L'essentiel des valeurs de configuration des serveurs virtuels
217     provient de valeurs par défaut issues du serveur principal.
218     Mais la position dans le fichier de configuration des directives
219     du serveur principal n'a pas d'importance -- l'ensemble de la
220     configuration du serveur principal est lu avant que ces valeurs par
221     défaut soient appliquées aux serveur virtuels. Ainsi, même si la
222     définition d'une valeur apparaît après celle d'un serveur virtuel,
223     cette valeur peut affecter la definition du serveur virtuel.</p>
224
225     <p>Dans le cas où le serveur principal n'a pas de <code>ServerName</code>
226     à ce stade, le nom de la machine sur laquelle tourne le programme
227     <code class="program"><a href="../programs/httpd.html">httpd</a></code> est utilisé à sa place. Nous appellerons
228     <em>jeu d'adresses du serveur principal</em>, les adresses IP
229     renvoyées par une résolution DNS sur le <code>ServerName</code>
230     du serveur principal.</p>
231
232     <p>Pour tous les champs <code>ServerName</code> non définis, dans
233     le cas d'une configuration en serveur virtuel par nom, la valeur
234     adoptée par défaut est la première adresse donnée dans la section
235     <code>VirtualHost</code> qui définit le serveur virtuel.</p>
236
237     <p>Si un serveur virtuel contient la valeur magique
238     <code>_default_</code>, il fonctionne sur le même <code>ServerName</code>
239     que le serveur principal.</p>
240
241 </div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
242 <div class="section">
243 <h2><a name="hostmatching" id="hostmatching">Choix du serveur virtuel</a></h2>
244
245     <p>À la réception d'une requête, le serveur procède comme suit pour
246     déterminer quel serveur virtuel utiliser&nbsp;:</p>
247
248     <h3><a name="hashtable" id="hashtable">Vérification dans la table de hash</a></h3>
249
250     <p>Après que le client se soit connecté, l'adresse
251     IP à laquelle le client s'est connecté est recherchée dans la
252     table de hash IP interne.</p>
253
254     <p>Si la résolution de l'adresse IP n'aboutit pas (adresse IP non
255     trouvée), la requête est servie par le serveur virtuel
256     <code>_default_</code> s'il est défini pour le port correspondant
257     à la requête. Sinon, elle est servie par le serveur principal.</p>
258
259     <p>Si l'adresse IP n'est pas trouvée dans la table de hash, la
260     recherche du numéro de port peut aussi se terminer par une
261     correspondance à un <code>NameVirtualHost *</code> qui est géré
262     ensuite comme les autres serveur virtuels par noms.</p>
263
264     <p>Si une liste est bien trouvée dans la table pour l'adresse
265     IP recherchée, l'étape suivante est de déterminer s'il s'agit
266     d'un serveur virtuel par nom ou par IP.</p>
267
268     
269
270     <h3><a name="ipbased" id="ipbased">Serveur virtuel par IP</a></h3>
271
272     <p>Si l'entrée trouvée dispose d'une liste de noms vide, c'est
273     qu'il s'agit d'un serveur virtuel par IP, et aucun autre choix
274     n'est plus à faire&nbsp;; la requête est servie par ce serveur virtuel.</p>
275
276     
277
278     <h3><a name="namebased" id="namebased">Serveur virtuel par nom</a></h3>
279
280     <p>Si l'entrée trouvée correspond à un serveur virtuel par nom,
281     la liste de noms contient au moins une structure de serveurs
282     virtuels. Les serveurs virtuels se présentent dans cette liste
283     dans le même ordre que la lecture des directives <code>VirtualHost</code>
284     dans le fichier de configuration.</p>
285
286     <p>Le premier serveur virtuel de cette liste (donc, le premier
287     serveur virtuel attribué à une adresse IP donnée dans le fichier
288     de configuration) se voit attribuer la plus grande priorité, ce
289     qui signifie que c'est lui qui traite les requêtes présentant un
290     nom de serveur invalide ou ne présentant pas de champ
291     <code>Host:</code> dans l'en-tête.</p>
292
293     <p>Si un champ <code>Host:</code> est transmis dans l'en-tête de
294     la requête, son occurrence est recherchée dans la liste et le
295     premier serveur virtuel qui présente un <code>ServerName</code>
296     ou un <code>ServerAlias</code> correspondant est choisi pour
297     servir la requête. Il est possible que le champ <code>Host:</code>
298     contienne un numéro de port, mais Apache utilise toujours le
299     port sur lequel il a effectivement reçu la requête.</p>
300
301     <p>Dans le cas où le client a envoyé une requête en HTTP/1.0 sans
302     un champ d'en-tête <code>Host:</code>, il est impossible de
303     déterminer le serveur auquel le client veut se connecter&nbsp;; l'URI
304     de la requête est recherché dans tous les <code>ServerPath</code>
305     existants. Le premier chemin trouvé est utilisé et la requête est
306     servie par le serveur virtuel correspondant.</p>
307
308     <p>Si aucun serveur virtuel n'est trouvé, la requête est servie
309     par le premier serveur virtuel qui écoute sur le port demandé et
310     qui est sur la liste associée à l'adresse IP vers laquelle la
311     requête a été envoyée (comme déjà précisé ci-avant).</p>
312
313     
314
315     <h3><a name="persistent" id="persistent">Connexions persistantes</a></h3>
316
317     <p>La recherche par adresse IP décrite ci-avant n'est faite
318     qu'<em>une fois</em> pour chaque session TCP/IP, alors que la
319     recherche par nom est réalisée pour <em>chaque</em> requête au
320     cours d'une connexion persistante (KeepAlive). En d'autres termes,
321     il est possible pour un client de faire des requêtes sur
322     différents serveurs virtuels par nom, au cours d'une unique
323     connexion persistante.</p>
324
325     
326
327     <h3><a name="absoluteURI" id="absoluteURI">URI absolu</a></h3>
328
329     <p>Au cas où l'URI de la requête est absolu, et que son nom de
330     serveur et son port correspondent au serveur principal (ou l'un
331     des serveurs virtuels configurés), <em>et</em> qu'ils correspondent
332     à l'adresse et au port de la requête, alors l'URI est amputé
333     de son préfixe protocole/nom de serveur/port et traité par le
334     serveur correspondant (principal ou virtuel). Si cette correspondance
335     n'existe pas, l'URI reste inchangé et la requête est considérée
336     comme une requête d'un serveur mandataire (proxy).</p>
337
338
339 <h3><a name="observations" id="observations">Observations</a></h3>
340
341     <ul>
342       <li>Les serveurs virtuels par nom et par IP n'interfèrent
343       jamais entre eux. Les serveurs virtuels par IP ne sont joignables
344       qu'au travers de leur(s) adresse(s) IP propre(s), en aucun
345       cas par aucune autre adresse. Les serveurs virtuels par nom
346       ne sont accessibles que par leur(s) adresse(s) IP qui ne peuvent
347       être définies qu'au moyen de la directive
348       <code>NameVirtualHost</code>.</li>
349
350       <li>Les vérifications sur <code>ServerAlias</code> et
351       <code>ServerPath</code> ne sont jamais réalisées pour les
352       serveurs virtuels par IP.</li>
353
354       <li>L'ordre dans lequel sont agencés dans le fichier de
355       configuration le serveur virtuel <code>_default_</code>, les
356       serveurs virtuels par nom et par IP, et la directive
357       <code>NameVirtualHost</code> est sans incidence sur le
358       fonctionnement. Seul l'ordre des serveurs virtuels par nom
359       pour une adresse donnée a une importance. Le serveur virtuel
360       par nom qui est présent en premier dans la configuration se
361       voit attribué la priorité la plus haute pour les requêtes
362       arrivant sur son jeu d'adresses IP.</li>
363
364       <li>Pour des raisons de sécurité, le numéro de port présenté
365       dans le champ d'en-tête <code>Host:</code> n'est jamais utilisé
366       pour les tests de correspondances. Apache ne prend en compte
367       que le numéro de port sur lequel le client a envoyé la requête.</li>
368
369       <li>Si une directive <code>ServerPath</code> existe, et se
370       trouve être préfixe d'une autre directive <code>ServerPath</code>
371       qui apparaît plus loin dans la configuration, la première
372       sera toujours utilisée et la deuxième jamais. (Ceci ne se
373       produit que dans le cas où aucun champ <code>Host:</code>
374       n'a été présenté par le client pour distinguer les deux.)</li>
375
376       <li>Dans le cas où deux serveurs virtuels par IP ont une
377       adresse en commun, le serveur virtuel qui apparaît en premier
378       dans la configuration est toujours choisi. Ce genre de chose
379       peut arriver par inadvertance. Le serveur envoie une alerte
380       dans le journal d'erreurs si ce cas se présente.</li>
381
382       <li>Le serveur virtuel <code>_default_</code> ne sert la requête
383       que si aucun autre serveur virtuel travaillant sur l'adresse
384       IP <em>et</em> le port demandés n'est trouvé. La requête n'est
385       traitée que si le numéro de port qui a reçu la requête est
386       associé au serveur virtuel <code>_default_</code> (qui par
387       défaut, correspond à <code>Listen</code>). Un port joker peut
388       être spécifié (<em>comme dans</em> <code>_default_:*</code>)
389       pour récupérer les requêtes sur tous les ports ouverts. Ceci
390       est également applicable aux serveurs virtuels
391       <code>NameVirtualHost *</code>.</li>
392
393       <li>Le serveur principal ne sert à servir les requêtes que
394       lorsque l'adresse IP et le port demandés par le client ne
395       correspondent à aucun serveur virtuel (y compris un serveur
396       virtuel <code>_default_</code>). En d'autres termes, le serveur
397       principal n'est utile que pour les combinaisons adresse/port
398       non spécifiées (sauf quand un serveur virtuel <code>_default_</code>
399       correspond au port).</li>
400
401       <li>Ni les serveurs virtuels <code>_default_</code>, ni le
402       serveur principal ne sont utilisés pour traiter une requête
403       avec un champ d'en-tête <code>Host:</code> manquant ou vide
404       lorsque l'adresse (et le port) de connexion correspondent à
405       des serveurs virtuels par nom, par exemple, dans une directive
406       <code>NameVirtualHost</code>.</li>
407
408       <li>Il ne faut jamais employer de noms DNS dans des directives
409       <code>VirtualHost</code>, car cela oblige le serveur a s'appuyer
410       sur le DNS au moment du démarrage. De plus, vous vous exposez
411       à des problèmes de sécurité si vous n'avez pas la maîtrise du
412       DNS pour la totalité de vos domaines. Voir la documentation
413       <a href="../dns-caveats.html">disponible ici</a>, ainsi que
414       les deux points précisés ci-après.</li>
415
416       <li>Un nom de serveur <code>ServerName</code> devrait toujours
417       être indiqué pour chaque serveur virtuel. Sans cela, une
418       résolution DNS est nécessaire pour chaque serveur virtuel.</li>
419       </ul>
420       
421
422 </div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
423 <div class="section">
424 <h2><a name="tips" id="tips">Trucs et astuces</a></h2>
425
426     <p>En plus des points évoqués sur la page des
427     <a href="../dns-caveats.html#tips">problèmes liés au DNS</a>,
428     voici quelques points intéressants&nbsp;:</p>
429
430     <ul>
431       <li>Toujours positionner les définitions relatives au serveur
432       principal avant toute définition <code>VirtualHost</code>.
433       (Ceci améliore grandement la lisibilité de la configuration
434       -- la manière dont la configuration est interprétée après la
435       lecture des fichiers ne met pas en évidence le fait que les
436       définitions positionnées avant et surtout après les serveurs
437       virtuels peuvent impacter le fonctionnement des serveurs virtuels.)</li>
438
439       <li>Toujours regrouper les définitions <code>NameVirtualHost</code>
440       et <code>VirtualHost</code> dans la configuration pour une
441       meilleure lisibilité.</li>
442
443       <li>Éviter les <code>ServerPaths</code> qui sont préfixes
444       d'autres <code>ServerPaths</code>. Si cela ne peut être évité,
445       veillez à ce que le serveur virtuel contenant le préfixe le plus
446       long (donc le plus précis) apparaisse dans le fichier de
447       configuration avant le plus court. (<em>par exemple</em>,
448       "ServerPath /abc" est à spécifier après  "ServerPath /abc/def").</li>
449     </ul>
450
451 </div></div>
452 <div class="bottomlang">
453 <p><span>Langues Disponibles: </span><a href="../en/vhosts/details.html" hreflang="en" rel="alternate" title="English">&nbsp;en&nbsp;</a> |
454 <a href="../fr/vhosts/details.html" title="Français">&nbsp;fr&nbsp;</a> |
455 <a href="../ko/vhosts/details.html" hreflang="ko" rel="alternate" title="Korean">&nbsp;ko&nbsp;</a> |
456 <a href="../tr/vhosts/details.html" hreflang="tr" rel="alternate" title="Türkçe">&nbsp;tr&nbsp;</a></p>
457 </div><div id="footer">
458 <p class="apache">Copyright 2009 The Apache Software Foundation.<br />Authorisé sous <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache License, Version 2.0</a>.</p>
459 <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>
460 </body></html>