Serveur Apache HTTP Version 2.3
Configuration des adresses et ports sur lesquels Apache écoute.
Modules Apparentés | Directives Apparentées |
---|---|
Au moment de son démarrage, Apache se lie à un port et à une adresse IP sur la machine locale et se met en attente de requètes. Par défaut, Apache écoute sur toutes les adresses de la machine. Apache accepte d'écouter sur un ou plusieurs ports spécifiques, sur une seule ou plusieurs adresses, ou encore sur une combinaison port-adresse. Il est fréquent d'utiliser ces possibilités avec les fonctionnalités de Serveurs Virtuels, qui permettent de faire répondre le serveur de manière différente en fonction de l'adresse IP, du nom d'hôte ou du port.
Le serveur interprète la directive
Listen
en acceptant les requètes seulement sur le port ou la combinaison
adresse IP + port passée en argument. Dans le cas où seul un port
est spécifié avec la directive
Listen
,
le serveur se met à l'écoute sur le port spécifié, sur toutes
les interfaces et adresses de la machine. Si une adresse IP est
spécifiée en plus du port, le serveur n'écoute que sur l'adresse
et le port spécifié. Il est possible de configurer plusieurs adresses
et ports avec la directives
Listen
pour écoute par le serveur. Le serveur répond aux requètes faites
à toutes les adresses et ports énumérés.
Par exemple, pour que le serveur accepte les connexions sur les ports 80 et 8000, spécifiez :
Listen 80
Listen 8000
Pour qu'Apache accepte les connexions sur deux combinaisons adresses + ports, spécifiez :
Listen 192.170.2.1:80
Listen 192.170.2.5:8000
Les adresses IPv6 sont acceptées, pourvu qu'elles soient spécifiées entre crochets de la façon suivante :
Listen [2001:db8::a00:20ff:fea7:ccea]:80
De plus en plus de plate-formes implémentent IPv6. APR supporte IPv6 sur la plupart d'entre elles, si bien qu'Apache peut assigner des interfaces de connexions IPv6 et répondre aux requètes utilisant IPv6.
Une complication possible pour les administrateurs Apache est de savoir si une interface de connexion IPv6 peut répondre aux deux types de connexions IPv4 et IPv6. Manipuler les connexions IPv4 avec une interface de connexion IPv6 suppose l'utilisation d'adresses IPv6 mappées en IPv4, ce qui est le cas par defaut sur la plupart des plate-formes, à l'exeption de FreeBSD, NetBSD, et OpenBSD, cela en raison des politiques systèmes de ces plate-formes. Mème sur des systèmes où cette fonctionnalité n'est pas activée par défaut, une option de compilation permet de changer ce fonctionnement pour Apache.
Pour qu'Apache puisse gérer à la fois les connexions IPv4 et IPv6
avec un minimum d'interfaces de connexions, il faut permettre l'utilisation
des adresses
IPv6 mappées en IPv4, ce qui est possible en spécifiant l'option
de compilation --enable-v4-mapped
et en utilisant la
directive Listen
comme suit:
Listen 80
Si --enable-v4-mapped
a été spécifié à la compilation,
les directives Listen
de la configuration par défaut sont de la forme ci-dessus.
--enable-v4-mapped
est l'option de compilation
par défaut sur toutes les plate-formes, sauf FreeBSD, NetBSD, et
OpenBSD.
Pour qu'Apache ne manipule que les connexions IPv4, en ignorant l'éventuel
support IPv6 de la plate-forme ou d'APR, une adresse IPv4 peut être
spécifié pour toutes les directives
Listen
,
comme dans les exemples suivantss:
Listen 0.0.0.0:80
Listen 192.170.2.1:80
Pour qu'Apache manipule les connexions IPv4 et IPv6 sur des interfaces
différentes (c'est-à-dire, pour ne pas accepter les addresse IPv6 mappées
en IPv4), spécifier l'option de compilation --disable-v4-mapped
et utiliser des directives Listen
spécifiques telles que:
Listen [::]:80
Listen 0.0.0.0:80
Avec --disable-v4-mapped
, la directive
Listen
à l'intérieur
du fichier de configuration par défaut créé par Apache utilise la forme
ci-dessus.
--disable-v4-mapped
est l'option de compilation par défaut sous
FreeBSD, NetBSD, et OpenBSD.
Listen
n'implémente aucun Serveur Virtuel. Cette directive sert simplement
à informer le serveur principal sur quels addresses et ports écouter.
Dans le cas où aucune section
<VirtualHost>
n'est utilisée, le serveur répondra de la mème manière pour toutes
les requètes qu'il acceptera. Cependant des sections
<VirtualHost>
peuvent être utilisées pour qu'Apache réagisse de façon différente à
une requète selon l'adresse ou le port. Avant d'implémenter
un Serveur Virtuel au moyen de la directive
<VirtualHost>
, la directive
Listen
doit tre utilisée pour que le serveur écoute sur l'adresse
ou le port spécifié. Une section
<VirtualHost>
peut alors être utilisée pour définir la réaction du Serveur Virtuel pour une
adresse et un port spécifique. À noter que si un Serveur Virtuel est
positionné au moyen de la directive
<VirtualHost>
sur une adresse et un port sur lesquels le serveur n'est pas à l'écoute,
le Serveur Virtuel ne sera pas accessible.