<-
Apache > Serveur HTTP > Documentation > Version 2.0

Liaison

Langues Disponibles:  en  |  es  |  fr  |  ja  |  ko  |  tr 

Configuration des adresses et ports sur lesquels Apache écoute.

Voir aussi

top

Informations générales

Au moment de son démarrage, Apache se lie à un port et à une adresse sur la machine et se met en attente de requêtes entrantes. Par défaut, toutes les adresses de la machine se retrouvent à l'écoute. Dans tous les cas, Apache accepte d'écouter sur un ou plusieurs ports spécifiques, ou sur une seule ou plusieurs adresses, ou encore une combinaison des deux. Il est fréquent d'utiliser ces possibilités avec les fonctionnalités de Serveurs Virtuels, qui permettent de faire répondre Apache de manière différente en fonction de l'adresse IP, du nom ou du port.

Le serveur utilise la directive Listen pour n'accepter que des requêtes provenant de ports spécifiques ou d'une combinaison adresse IP + port passés 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 précisée en plus du port, le serveur n'écoute que sur l'adresse et le port spécifiés. Il est possible de configurer plusieurs directives Listen, afin qu'Apache écoute sur plusieurs adresses et ports. Dans ce cas, le serveur répondra aux requêtes faites sur tous les adresses et ports énumérés.

Par exemple, pour que le serveur accepte les connexions à la fois 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 entourées entre crochets de la façon suivante :

Listen [2001:db8::a00:20ff:fea7:ccea]:80

top

Précisions au sujet d'IPv6

De plus en plus de plates-formes implémentent IPv6, et APR supporte IPv6 sur la plupart d'entre elles, si bien qu'Apache peut utiliser des sockets IPv6 et répondre aux requêtes envoyées en IPv6.

Une complication possible pour les administrateurs Apache est de savoir si un socket IPv6 est capable de gérer les connexions IPv4 aussi bien qu'IPv6. Gérer les connexions IPv4 sur une socket IPv6 suppose l'utilisation d'adresses IPv6 mappées en IPv4, ce qui est le cas sur la plupart des plates-formes, mais pas sur FreeBSD, NetBSD et OpenBSD, en raison des politiques systèmes de ces plates-formes. Même sur des systèmes où cette fonctionnalité n'est pas activée par défaut, un paramètre de compilation pour configure permet de changer ce comportement pour Apache.

Pour qu'Apache puisse gérer à la fois les connexions IPv4 et IPv6 avec un minimum de sockets, il faut permettre l'utilisation des adresses IPv6 mappées en IPv4, ce qui est faisable en spécifiant l'option de compilation --enable-v4-mapped et en utilisant la directive générique 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 plates-formes, sauf pour FreeBSD, NetBSD, et OpenBSD, donc il est probable que votre Apache ait été compilé avec cette option.

Pour qu'Apache ne gère que les connexions IPv4, en ignorant l'éventuel support IPv6 de la plate-forme ou d'APR, une adresse IPv4 peut être donnée dans toutes les directives Listen, comme dans les exemples suivants :

Listen 0.0.0.0:80
Listen 192.170.2.1:80

Pour qu'Apache gère les connexions IPv4 et IPv6 sur des sockets différents (i.e., pour ne pas accepter les adresses IPv6 mappées en IPv4), spécifiez l'option de compilation --disable-v4-mapped et utilisez des directives Listen spécifiques telles que :

Listen [::]:80
Listen 0.0.0.0:80

Si le paramètre --disable-v4-mapped a été défini au moment de la compilation, les directives Listen de la configuration par défaut sont de la forme ci-dessus. --disable-v4-mapped est l'option de compilation par défaut sous FreeBSD, NetBSD, et OpenBSD.

top

Faire fonctionner tout ceci avec les Serveurs Virtuels

La directive Listen n'implémente aucun Serveur Virtuel. Elle sert simplement à indiquer au serveur principal sur quels adresses 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 recevra. Des sections <VirtualHost> peuvent être utilisées pour qu'Apache réagisse différemment selon que la requête est destinée à telle adresse ou à tel port. Avant d'implémenter un Serveur Virtuel au moyen de la directive VirtualHost, la directive Listen doit être configurée pour que le serveur écoute sur l'adresse ou le port utilisé. Ensuite, une section <VirtualHost> devrait être utilisée pour qu'Apache réagisse différemment selon l'adresse ou le port. À noter que si un Serveur Virtuel <VirtualHost> est configuré sur une adresse et un port sur lesquels le serveur n'est pas à l'écoute, le Serveur Virtuel ne sera pas accessible.

Langues Disponibles:  en  |  es  |  fr  |  ja  |  ko  |  tr