From 15c4eb2d4017d1152b4af5c6b609ac3d0ba84386 Mon Sep 17 00:00:00 2001
From: Lucien Gentis Avec la version 2.4, Apache est plus strict avec la conversion
+ des en-têtes HTTP en variables d'environnement dans
+ Si vous devez supporter un client qui envoie des en-têtes non
+ conformes et si ceux-ci ne peuvent pas être corrigés, il existe
+ une solution de contournement simple mettant en jeu les modules
+ Assurez-vous qu'il s'agit bien du chemin correct vers
l'interpréteur. De plus, si votre programme CGI dépend d'autres variables d'environnement, vous devrez vous
- assurer qu'elles lui sont bien transmises par Apache. Si votre programme CGI dépend de variables
+ d'environnement non standards, vous devrez vous assurez que
+ ces variables lui sont bien transmises par Apache. Lorsque des en-têtes HTTP ne sont pas transmis à
+ l'environnement, assurez-vous qu'ils sont bien formatés selon la
+ RFC 2616, section
+ 4.2 : les noms d'en-têtes doivent commencer par une lettre,
+ elle-même suivie de lettres, chiffres ou traits d'union. Tout
+ en-tête dont le nom viole cette règle sera ignoré. Dans un contexte de serveur virtuel à base de nom, c'est le délai
- du premier serveur virtuel défini (le serveur par défaut) parmi un
- ensemble de directives Dans un contexte de serveur virtuel à base de nom, c'est
+ la valeur de la paire adresse IP/port du serveur virtuel qui
+ correspond le mieux qui sera utilisée. Dans le cas des serveurs virtuels à base de noms, la valeur de
cette directive est extraite du serveur virtuel par défaut (le
- premier de la liste) pour lequel la connexion correspondait à la
- directive
+#
+# L'exemple suivant montre comment prendre en compte un en-tête
+# Accept_Encoding non conforme envoyé par un client.
+#
+SetEnvIfNoCase ^Accept.Encoding$ ^(.*)$ fix_accept_encoding=$1
+RequestHeader set Accept-Encoding %{fix_accept_encoding}e env=fix_accept_encoding
+
- <Directory /home/>
+ <Directory /home>
Dans le cas des serveurs virtuels à base de noms, la valeur de
cette directive est extraite du serveur virtuel par défaut (le
- premier de la liste) pour lequel la connexion correspondait à la
- directive
Dans le cas des serveurs virtuels à base de noms, la valeur de
cette directive est extraite du serveur virtuel par défaut (le
- premier de la liste) pour lequel la connexion correspondait à la
- directive
Il est déconseillé d'éviter de placer les fichiers mutex +
Il est conseillé d'éviter de placer les fichiers mutex
dans un répertoire où tout le monde peut écrire comme
Une seule directive Cette directive, ainsi que les directives Bien que adresse puisse contenir un nom d'hôte, il est
-recommandé d'utiliser plutôt une adresse IP ou un nom d'hôte avec
-caractères génériques. Une directive NameVirtualHost contenant des
-caractères génériques ne peut correspondre qu'à des serveurs virtuels
-qui contiennent aussi des caractères génériques dans leur argument. Dans les cas où un pare-feu ou autre mandataire reçoit les requêtes
-et les redirige sous une adresse IP différente vers le serveur, vous
-devez spécifier l'adresse IP de l'interface physique de la machine qui
-va servir les requêtes. Dans l'exemple ci-dessous, les requêtes reçues sur l'interface
-192.0.2.1 et le port 80 ne vont déclencher une sélection que parmi les
-deux premiers serveurs virtuels. Les requêtes reçues sur le port 80 et
-sur toute interface ne vont déclencher une sélection que parmi les
-troisième et quatrième serveurs virtuels. D'une manière générale,
-lorsque l'interface ne constitue pas un critère important de sélection,
-la valeur "*:80" suffit pour les directives NameVirtualHost et
-VirtualHost. Si aucun serveur virtuel ne correspond, c'est le premier serveur
- virtuel correspondant à l'adresse IP qui sera utilisé. Les adresses IPv6 doivent être entourées de crochets, comme dans
- l'exemple suivant : Notez que l'argument de la directive Avant la version 2.3.11, il était nécessaire de définir une
+ directive Cette directive n'a actuellement plus aucun effet./var/tmp
, car quelqu'un pourrait initier une attaque
par déni de service et empêcher le serveur de démarrer en créant un
@@ -3175,86 +3171,15 @@ nom
- NameVirtualHost *:80
-
- <VirtualHost 192.0.2.1:80>
- ServerName namebased-a.example.com
- </VirtualHost>
-
- <VirtualHost 192.0.2.1:80>
- Servername namebased-b.example.com
- </VirtualHost>
-
- <VirtualHost *:80>
- ServerName namebased-c.example.com
- </VirtualHost>
-
- <VirtualHost *:80>
- ServerName namebased-d.example.com
- </VirtualHost>
-
-
-
- <VirtualHost 192.0.2.2:80>
- # ...
- </VirtualHost>
- -
est supprimée de la liste des options courantes de la
même manière.
Mélanger des +
ou -
avec des +
ou -
constitue une erreur de syntaxe, et
- peut résulter en des comportements inattendus.
Par exemple, sans aucun symbole +
et -
@@ -3869,7 +3795,6 @@ le serveur HTTP Apache
du serveur HTTP Apache
*
, qui n'est utilisé qu'en
- combinaison avec NameVirtualHost *
pour intercepter
- toutes les adresses IP ; ou*
, qui agit comme un
+ caractère générique, et correspond à toute adresse IP._default_
, dont la signification est
+ identique à celle du caractère *
_default_
, qui n'est
- utilisée qu'avec l'hébergement virtuel à base d'adresse IP pour
- intercepter les adresses IP qui ne correspondent à aucun serveur
- virtuel.Avec l'hébergement virtuel à base d'adresse IP, on peut utiliser
- le nom spécial _default_
, auquel cas le serveur virtuel
- considéré interceptera toute adresse IP qui n'est pas explicitement
- associée à un autre serveur virtuel. En l'absence de serveur virtuel
- associé à _default_
, et si l'adresse IP demandée ne
- correspond à aucun serveur virtuel, c'est la configuration du
- serveur "principal" qui sera utilisée, c'est à dire l'ensemble des
- définitions situées en dehors de toute section VirtualHost.
Vous pouvez spécifier :port
pour modifier le port du
- serveur virtuel. S'il n'est pas spécifié, sa valeur par défaut
- correspond à celle qui est définie par la dernière directive
- :*
pour accepter
- tous les ports associés à l'adresse du serveur virtuel (c'est une
- configuration recommandée lorsqu'on utilise
- _default_
).
Tout bloc
Si aucun serveur virtuel ne correspond, c'est le premier serveur - virtuel correspondant à l'adresse IP qui sera utilisé. Par - conséquent, le premier serveur virtuel défini est le serveur virtuel - par défaut.
+A l'arrivée d'une requête, le serveur tente de la
+ faire prendre en compte par la section
Si plusieurs serveurs virtuels correspondent du point de vue de + l'adresse IP/port, le serveur sélectionne celui qui correspond le + mieux du point de vue du nom d'hôte de la requête. Si aucune + correspondance du point de vue du nom d'hôte n'est trouvée, c'est le + premier serveur virtuel dont l'adresse IP/port correspond qui sera + utilisé. Par voie de conséquence, le premier serveur virtuel + comportant une certaine paire adresse IP/port est le serveur virtuel + par défaut pour cette paire adresse IP/port.
Voir le document sur les
header [value] [early|env=[!]variable]
This directive can replace, merge or remove HTTP response
diff --git a/docs/manual/mod/mod_headers.xml.fr b/docs/manual/mod/mod_headers.xml.fr
index 12815f928c..675b13f2af 100644
--- a/docs/manual/mod/mod_headers.xml.fr
+++ b/docs/manual/mod/mod_headers.xml.fr
@@ -1,7 +1,7 @@
-
+
@@ -328,8 +328,8 @@ tardif
Cette directive permet de remplacer, fusionner, ou
@@ -338,20 +338,38 @@ partir de la version 2.3.9
s'exécutent, ce qui permet la modification des en-têtes
sortants. A partir de la version 2.3.9, la condition par défaut est
- "always", ce qui implique que cette directive agit sans tenir compte
- du code d'état de la réponse. Dans les versions 2.3.8 et
- antérieures, "onsuccess" était la condition par défaut, ce qui
- impliquait que les en-têtes n'étaient modifiés que pour les réponses
- avec code d'état Une valeur effective L'argument optionnel condition permet de déterminer
+ sur quelle table interne d'en-têtes de réponses cette directive va
+ opérer. D'autres composants du serveur peuvent avoir stocké leurs
+ en-têtes de réponses dans la table correspondant à
+ Vous pouvez avoir à changer la valeur par défaut
+ L'action que cette directive provoque est déterminée par le
premier argument (ou par le second argument si une
condition est spécifiée). Il peut prendre
diff --git a/docs/manual/new_features_2_4.xml.fr b/docs/manual/new_features_2_4.xml.fr
index 7688bf6b8e..0d70c283d4 100644
--- a/docs/manual/new_features_2_4.xml.fr
+++ b/docs/manual/new_features_2_4.xml.fr
@@ -3,7 +3,7 @@
-
+
+
@@ -28,160 +28,95 @@
Le code gérant les serveurs virtuels a été réécrit à partir de
- zéro dans Apache 1.3. Ce document vise à expliquer
- dans le détail comment Apache procède lors du choix de l'utilisation
- d'un serveur virtuel en fonction d'une requête reçue. L'apparition
- de la directive Ce document vise à expliquer dans le détail comment le serveur
+ HTTP Apache procède lors du choix de l'utilisation
+ d'un serveur virtuel en fonction d'une requête reçue. Si vous voulez juste que ça marche sans en
- comprendre le fonctionnement, voici quelques
- exemples. Il est recommandé de lire la documentation
+ Serveurs virtuels à base de nom et serveurs virtuels à base
+ d'adresse IP pour déterminer quel type de serveur virtuel nous
+ convient le mieux, puis de lire les documentations serveurs virtuels à base de nom ou serveurs virtuels à base d'adresse IP, et enfin
+ d'étudier quelques exemples. Si vous voulez entrer dans les détails, vous pouvez revenir vers
+ cette page. Un serveur principal (main_server) contient toutes
les définitions qui apparaissent en dehors des sections
- Les serveurs virtuels, aussi
appelés vhosts (pour virtual hosts), sont définis par les
sections Les directives
- La valeur par défaut du champ La directive Listen associée au serveur principal a deux utilités.
- La première détermine le port réseau sur lequel Apache va écouter.
- La deuxième spécifie le port qui sera utilisé dans les URIs absolus
- lors des redirections. À la différence du serveur principal, les ports des serveurs
- virtuels n'affectent pas les ports sur lesquels
- Apache se met à l'écoute. Chaque adresse incluse dans une directive Chaque directive Il est possible d'utiliser des noms d'hôtes dans la définition
+ d'un serveur virtuel, mais ils seront résolus en adresses IP au
+ démarrage du serveur, et si une résolution de nom échoue, cette
+ définition de serveur virtuel sera ignorée. Cette méthode est par
+ conséquent déconseillée. L'adresse peut
+ être spécifiée sous la forme L'adresse qui apparaît dans la directive (Il ne faut pas confondre les numéros de port sur lesquels Apache
+ est en écoute avec les numéros de port spécifiés dans la directive
+ L'ensemble des adresses (y compris les résultats multiples
À moins qu'une directive
- Dans les cas où l'on souhaite utiliser un serveur virtuel
- par nom, la directive On peut utiliser plusieurs directives L'ordre d'apparition des directives (Il est conseillé d'adopter le choix de gauche pour faciliter
- la lisibilité des fichiers de configuration.) Après la lecture de la directive La liste complète des noms d'une directive Pendant la phase d'initialisation, une liste de chaque adresse
- IP est générée et introduite dans une table de 'hash'. Si une
- adresse IP est utilisée dans une directive La fonction de 'hash' étant rapide, le temps d'exécution d'un
- 'hash' sur une adresse IP lors d'une requête est minimale et
- quasiment imperceptible. De plus, la table est optimisée pour les
- adresses IP dont le dernier octet est le seul à changer. Apache fait automatiquement sa sélection à partir de l'en-tête
+ HTTP La directive Le premier serveur virtuel à base de nom apparaissant dans le
+ fichier de configuration pour une paire IP:port donnée est
+ significatif car c'est lui qui sera utilisé pour toutes les requêtes
+ reçues sur cette adresse IP/port et pour laquelle aucun autre
+ serveur virtuel ne possède un ServerName ou un ServerAlias
+ correspondant. Il sera aussi utilisé pour toutes les connexions SSL
+ si le serveur ne supporte pas l' Pour chaque serveur virtuel, diverses valeurs sont initialisées
par défaut. En particulier : À la réception d'une requête, le serveur procède comme suit pour
déterminer quel serveur virtuel utiliser : Après que le client se soit connecté, l'adresse
- IP à laquelle le client s'est connecté est recherchée dans la
- table de hash IP interne. Lors d'une première connexion sur une adresse/port, le serveur
+ recherche toutes les directives Si la résolution de l'adresse IP n'aboutit pas (adresse IP non
- trouvée), la requête est servie par le serveur virtuel
- S'il n'y a aucune correspondance exacte pour cette adresse/port,
+ la recherche s'effectue sur la valeur générique ( Si l'adresse IP n'est pas trouvée dans la table de hash, la
- recherche du numéro de port peut aussi se terminer par une
- correspondance à un Si une liste est bien trouvée dans la table pour l'adresse
- IP recherchée, l'étape suivante est de déterminer s'il s'agit
- d'un serveur virtuel par nom ou par IP. Si aucune correspondance n'est enfin trouvée, la requête sera
+ servie par le serveur principal. S'il existe des définitions Si l'entrée trouvée dispose d'une liste de noms vide, c'est
- qu'il s'agit d'un serveur virtuel par IP, et aucun autre choix
- n'est plus à faire ; la requête est servie par ce serveur virtuel. Si une seule section Si l'entrée trouvée correspond à un serveur virtuel par nom,
- la liste de noms contient au moins une structure de serveurs
- virtuels. Les serveurs virtuels se présentent dans cette liste
- dans le même ordre que la lecture des directives Le premier serveur virtuel de cette liste (donc, le premier
- serveur virtuel du fichier de configuration
- attribué à l'adresse IP spécifiée)
- se voit attribuer la plus grande priorité, ce
- qui signifie que c'est lui qui traite les requêtes présentant un
- nom de serveur invalide ou ne présentant pas de champ
- Si un champ Si plusieurs sections Si la connexion utilise SSL, si le serveur supporte l' Si la requête contient un en-tête Dans le cas où le client a envoyé une requête en HTTP/1.0 sans
- champ d'en-tête Si aucun serveur virtuel n'est trouvé, la requête est servie
- par le premier serveur virtuel qui écoute sur le port demandé et
- qui est sur la liste associée à l'adresse IP vers laquelle la
- requête a été envoyée (comme déjà précisé ci-avant). Le premier serveur virtuel du fichier de configuration qui
+ possède l'adresse spécifiée est prioritaire et intercepte toutes les
+ requêtes à destination d'un nom de serveur inconnu, ou toute requête
+ sans en-tête La recherche par adresse IP décrite ci-avant n'est faite
+ La recherche par adresse IP décrite ci-avant n'est faite
qu'une fois pour chaque session TCP/IP, alors que la
- recherche par nom est réalisée pour chaque requête au
+ recherche par nom est réalisée pour chaque requête au
cours d'une connexion persistante (KeepAlive). En d'autres termes,
il est possible pour un client de faire des requêtes sur
différents serveurs virtuels par nom, au cours d'une unique
@@ -337,72 +265,43 @@ de configuration
Si vous le souhaitez, vous pouvez remplacer Vous pouvez remplacer En général, il est commode d'utiliser Vous disposez de plusieurs domaines pointant sur la même adresse
- IP et vous voulez également servir de multiples ports. Vous y
- parviendrez en définissant les ports dans la directive
- "NameVirtualHost". Si vous tentez d'utiliser <VirtualHost
- name:port> sans directive NameVirtualHost name:port, ou tentez
- d'utiliser la directive Listen, votre configuration ne fonctionnera
- pas. Pour certaines adresses, des serveurs virtuels seront définis
- par nom, et pour d'autres, ils seront définis par IP. Toute adresse indiquée comme argument d'une section VirtualHost
+ et n'apparaissant dans aucun autre serveur virtuel, fait de cette
+ section un serveur virtuel sélectionnable uniquement en fonction de
+ son adresse IP. La sélection du serveur virtuel en fonction du nom s'opère en
+ dehors de l'algorithme de sélection du serveur virtuel en fonction
+ de l'adresse IP, ce qui signifie que les recherches du point de vue
+ du nom du serveur ne s'effectuent que parmi le jeu de serveurs
+ virtuels pour lesquels la correspondance avec la paire adresse
+ IP/port est la plus exacte. Lorsqu'une requête arrive, le serveur vérifie d'abord si elle
- utilise une adresse IP qui correspond exactement à une directive
- Si aucune directive ServerName ou ServerAlias correspondant au
- nom d'hôte de la requête n'est trouvée dans l'ensemble des serveurs
- virtuels correspondant à la directive NameVirtualHost, c'est
- le premier serveur virtuel de la liste de ceux qui
- correspondent à l'adresse IP qui sera utilisé. A l'arrivée d'une requête, le serveur va rechercher l'argument de
+ section Si aucune directive ServerName ou ServerAlias ne correspond dans
+ la liste de serveurs virtuels présentant la meilleure correspondance
+ du point de vue adresse IP/port, c'est le premier serveur
+ virtuel de cette liste qui sera utilisé. Pour utiliser des serveurs virtuels par nom, vous devez
- désigner l'adresse IP (et si possible le port) sur le serveur
- devant accepter les requêtes qui doivent être redirigées en fonction
- du nom d'hôte. Cette
- configuration utilise la directive
- Notez que la simple mention d'une adresse
- IP dans une directive
- L'étape suivante est la création d'une section
+ La première étape consiste à créer une section
Autrement, vous pouvez spécifiez une adresse IP explicite
- à la place de 2xx
.always
peut être nécessaire
- pour forcer la définition des en-têtes par certains modules internes
- (tels que 2xx
, comme les redirections
- ou les erreurs clients.onsuccess
ou dans celle correspondant à
+ always
. Dans ce contexte, "Always" fait référence au
+ choix d'envoyer les en-têtes que vous ajoutez aux réponses, qu'elle
+ soient avec succès ou échouées ; par contre, si votre action est une
+ fonction d'un en-tête existant, vous devrez lire la documentation de
+ manière plus approfondie car dans ce cas, les choses se compliquent.onsuccess
en always
dans des circonstances
+ similaires à celles exposées plus loin. Notez aussi que la répétition
+ de cette directive avec les deux conditions peut être pertinente
+ dans certains scénarios, car always
n'englobe pas
+ onsuccess
en ce qui concerne les en-têtes existants :
+
+
always
est utilisée dans la réponse
+ définitive.always
et non dans la table par
+ défaut.onsuccess
.<VirtualHost>
. Les serveurs virtuels, aussi
+ <VirtualHost>
.Listen
pour le serveur
- principal est de 80. Le serveur principal n'a pas de valeur par
- défaut pour ServerPath
ni pour ServerAlias
.
- La valeur par défaut de ServerName
est déduite à partir
- de l'adresses IP du serveur.VirtualHost
- peut disposer d'un port optionnel. Si le port n'est pas précisé, il
- prend par défaut la dernière valeur de Listen
lue dans
- la configuration du serveur principal. Le port particulier
- *
représente un joker qui correspond à tous les ports.
- L'ensemble des adresses (y compris les résultats multiples
+ VirtualHost
comporte une ou
+ plusieurs adresses et des ports optionnels.*
, ce qui conviendra à la
+ requête si aucun autre serveur virtuel ne possède l'adresse IP
+ explicite correspondant à celle de la requête.VirtualHost
+ peut être associée à un port optionnel. Si aucun port n'est
+ spécifié, il s'agit d'un port générique qui peut aussi être spécifié
+ comme *
. Le port générique correspond à toutes les
+ valeurs de port.VirtualHost
; ces derniers ne servent qu'à définir le
+ serveur virtuel
qui sera sélectionné pour traiter la
+ requête. Pour définir les ports sur lesquels Apache est en écoute,
+ utilisez la directive A
issus des requêtes DNS) est appelé jeu
d'adresses du serveur virtuel.*
.NameVirtualHost
doit
- apparaître avec l'adresse IP choisie. En d'autres termes, vous devez
- spécifier dans votre fichier de configuration l'adresse IP des noms
- de domaine (CNAME) de vos serveurs virtuels par nom au moyen de
- la directive NameVirtualHost
.NameVirtualHost
- pour un groupe de directives VirtualHost
, mais seule
- une directive NameVirtualHost
doit être utilisée pour
- chaque couple IP:port donné.NameVirtualHost
- et VirtualHost
est sans importance, ce qui fait que
- les deux exemples suivants ont des effets identiques (seul l'ordre
- des directives VirtualHost
pour un jeu
- d'adresses est important, voir ci-dessous) :
-
-
-
-
-
- <VirtualHost 111.22.33.44>
- # serveur A
- ...
- </VirtualHost>
- <VirtualHost 111.22.33.44>
- # serveur B
- ...
- </VirtualHost>
-
- NameVirtualHost 111.22.33.55
- <VirtualHost 111.22.33.55>
- # serveur C
- ...
- </VirtualHost>
- <VirtualHost 111.22.33.55>
- # serveur D
- ...
- </VirtualHost>
-
-
- # serveur A
- </VirtualHost>
- <VirtualHost 111.22.33.55>
- # serveur C
- ...
- </VirtualHost>
- <VirtualHost 111.22.33.44>
- # serveur B
- ...
- </VirtualHost>
- <VirtualHost 111.22.33.55>
- # serveur D
- ...
- </VirtualHost>
-
- NameVirtualHost 111.22.33.44
- NameVirtualHost 111.22.33.55
-
-VirtualHost
, le
- serveur virtuel se voit attribuer une valeur Listen
- par défaut qui est la valeur du port associé au premier nom spécifié
- dans sa directive VirtualHost
.VirtualHost
- est gérée exactement comme des ServerAlias
(mais ne
- sont pas écrasés par d'autres ServerAlias
) si tous
- les noms sont résolus dans ce jeu d'adresse. À noter que les états
- Listen
de ce serveur virtuel sont sans incidence sur
- les ports attibués au jeu d'adresses.NameVirtualHost
,
- cette liste contient les noms des serveurs virtuels pour cette
- adresse. Si aucun serveur virtuel n'est défini pour cette adresse,
- la directive NameVirtualHost
est ignorée et un message
- est envoyé au journal d'erreurs. Quand un serveur virtuel par IP
- est utilisé, la table de 'hash' reste vide.Host
fourni par le client, lorsque la
+ correspondance la plus exacte du point de vue adresse IP/port a lieu
+ pour plusieurs serveurs virtuels.ServerName
n'est spécifiée, le
+ serveur tente de déterminer le nom du serveur à partir de l'adresse
+ IP.VirtualHost
qui
+ possèdent la même adresse IP/port._default_
s'il est défini pour le port correspondant
- à la requête. Sinon, elle est servie par le serveur principal.*
).NameVirtualHost *
qui est géré
- ensuite comme les autres serveurs virtuels par noms.VirtualHost
pour
+ l'adresse IP, l'étape suivante consiste à déterminer si nous avons à
+ faire à un serveur virtuel à base de nom ou d'adresse IP.VirtualHost
présente la
+ meilleure correspondance avec la paire adresse IP/port, aucune
+ action n'est entreprise et la requête est
+ traitée par le serveur virtuel qui correspond.VirtualHost
- dans le fichier de configuration.Host:
dans l'en-tête.Host:
est transmis dans l'en-tête de
- la requête, son occurrence est recherchée dans la liste et le
- premier serveur virtuel qui présente un ServerName
- ou un ServerAlias
correspondant est choisi pour
- servir la requête. Il est possible que le champ Host:
- contienne un numéro de port, mais Apache utilise toujours le
+ VirtualHost
présentent la
+ meilleure correspondance avec la paire adresse IP/port, le terme
+ "liste" dans les étapes suivantes fait référence à la liste des
+ serveurs virtuels qui correspondent, selon l'ordre dans lequel ils
+ apparaissent dans le fichier de configuration.Host:
aurait été utilisé dans le cas
+ d'une connexion non-SSL. Si ces conditions ne sont pas réunies, le
+ premier serveur virtuel à base de nom dont l'adresse correspond sera
+ utilisé pour les connexions SSL. Ceci est important car c'est le
+ serveur virtuel qui détermine quel certificat le serveur va utiliser
+ pour la connexion.Host:
, on
+ recherche dans la liste le premier serveur virtuel dont le
+ ServerName
ou le ServerAlias
correspond,
+ et c'est celui-ci qui va traiter la requête. Un en-tête
+ Host:
peut comporter un numéro de port mais Apache
+ l'ignore systématiquement et utilise toujours le
port sur lequel il a effectivement reçu la requête.Host:
, il est impossible de
- déterminer le serveur auquel le client veut se connecter ; l'URI
- de la requête est recherché dans tous les ServerPath
- existants. Le premier chemin trouvé est utilisé et la requête est
- servie par le serveur virtuel correspondant.Host:
(comme les requêtes HTTP/1.0).
-
+
NameVirtualHost
.ServerAlias
et
- ServerPath
ne sont jamais réalisées pour les
- serveurs virtuels par IP._default_
, les
- serveurs virtuels par nom et par IP, et la directive
- NameVirtualHost
est sans incidence sur le
- fonctionnement. Seul l'ordre des serveurs virtuels par nom
+ ServerName
et
+ ServerAlias
ne sont jamais
+ réalisées pour les serveurs virtuels par IP.Host:
n'est jamais utilisé
+ Host:
n'est jamais utilisé
pour les tests de correspondances. Apache ne prend en compte
que le numéro de port sur lequel le client a envoyé la requête.ServerPath
existe, et se
- trouve être préfixe d'une autre directive ServerPath
- qui apparaît plus loin dans la configuration, la première
- sera toujours utilisée et la deuxième jamais. (Ceci ne se
- produit que dans le cas où aucun champ Host:
- n'a été présenté par le client pour distinguer les deux.)_default_
ne sert la requête
- que si aucun autre serveur virtuel travaillant sur l'adresse
- IP et le port demandés n'est trouvé. La requête n'est
- traitée que si le numéro de port qui a reçu la requête est
- associé au serveur virtuel _default_
(qui par
- défaut, correspond à Listen
). Un port joker peut
- être spécifié (comme dans _default_:*
)
- pour récupérer les requêtes sur tous les ports ouverts. Ceci
- est également applicable aux serveurs virtuels
- NameVirtualHost *
._default_
). En d'autres termes, le serveur
+ virtuel *
). En d'autres termes, le serveur
principal n'est utile que pour les combinaisons adresse/port
non spécifiées (sauf quand un serveur virtuel _default_
correspond au port)._default_
, ni le
- serveur principal ne sont utilisés pour traiter une requête
- avec un champ d'en-tête Host:
inconnu ou manquant
- lorsque l'adresse (et le port) de connexion correspondent à
- des serveurs virtuels par nom, par exemple, dans une directive
- NameVirtualHost
.VirtualHost
, car cela oblige le serveur a s'appuyer
sur le DNS au moment du démarrage. De plus, vous vous exposez
@@ -435,17 +334,7 @@ de configuration
virtuels peuvent impacter le fonctionnement de tous les
serveurs virtuels.)NameVirtualHost
- et VirtualHost
correspondantes
- dans la configuration pour une meilleure lisibilité.ServerPaths
qui sont préfixes
- d'autres ServerPaths
. Si cela ne peut être évité,
- veillez à ce que le serveur virtuel contenant le préfixe le plus
- long (donc le plus précis) apparaisse dans le fichier de
- configuration avant le plus court. (par exemple,
- "ServerPath /abc" est à spécifier après "ServerPath /abc/def").
Listen 80
- # Toutes les adresses IP doivent répondre aux requêtes sur les
- # serveurs virtuels
- NameVirtualHost *:80
<VirtualHost *:80>
*
- par l'adresse IP du système. Dans ce cas, l'argument de
- VirtualHost
doit correspondre à
- l'argument de NameVirtualHost
:
-
- <VirtualHost 172.20.30.40>
- # etc ...
- *
+ par l'adresse IP du système si vous ne souhaitez pas faire
+ opérer la sélection du serveur virtuel en fonction de la
+ paire adresse IP/port.*
sur
les systèmes dont l'adresse IP n'est pas constante - par
@@ -152,9 +142,6 @@
ServerName server.example.com
DocumentRoot /www/mainserver
- # l'autre adresse
- NameVirtualHost 172.20.30.50
-
<VirtualHost 172.20.30.50>
@@ -203,9 +190,7 @@
- NameVirtualHost 172.20.30.40
-
+
<VirtualHost 192.168.1.1 172.20.30.40>
@@ -235,12 +220,10 @@
ports.
Listen 8080
- NameVirtualHost 172.20.30.40:80
- NameVirtualHost 172.20.30.40:8080
-
<VirtualHost 172.20.30.40:80>
@@ -366,16 +346,15 @@
-
- NameVirtualHost 172.20.30.40
-
<VirtualHost 172.20.30.40>
@@ -556,8 +535,6 @@
ServerName www.example.com
DocumentRoot /www/example.com
- NameVirtualHost 172.20.30.40
-
<VirtualHost 172.20.30.40 172.20.30.50>
@@ -599,8 +576,6 @@
-
<VirtualHost 172.20.30.40>
diff --git a/docs/manual/vhosts/index.xml.fr b/docs/manual/vhosts/index.xml.fr
index 59c46db5f8..f57a35bfd4 100644
--- a/docs/manual/vhosts/index.xml.fr
+++ b/docs/manual/vhosts/index.xml.fr
@@ -1,7 +1,7 @@
-
+
@@ -84,7 +84,6 @@
+
+ *
comme argument de la directive
- *:80
.httpd.conf
:
-
<VirtualHost *:80>
*
dans les deux directives
- *
dans la directive