Serveur Apache HTTP Version 2.2

Apache > Serveur HTTP > Documentation > Version 2.2

# Adresse IP et port d'écoute

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

Configuration d'Apache pour l'écoute sur un port et une adresse IP spécifiques.

### Voir aussi

- Hôtes virtuels
- Problèmes liés à DNS

## Vue d'ensemble

Modules Apparentés | Directives Apparentées
--- | ---

- `core`
- `mpm_common`

- `<VirtualHost>`
- `Listen`

Au démarrage d'Apache, un port et une adresse lui sont associés sur l'hôte local et le serveur se met en attente de l'arrivée d'une requête. Par défaut, le serveur écoute toutes les adresses de l'hôte local. Cependant, on peut lui préciser des ports spécifiques à écouter, ou lui dire de n'écouter que sur certaines adresses, ou une combinaison des deux. Tout ceci est souvent associé avec la fonctionnalité des hôtes virtuels qui détermine la manière dont Apache répond aux différents ports, noms d'hôtes et adresses IP.

La directive `Listen` enjoint le serveur de n'accepter des requêtes que sur les ports spécifiés ou une combinaison adresse/port. Si seul un numéro de port est spécifié dans la directive `Listen`, le serveur écoute ce port sur toutes les interfaces réseau. Si une adresse IP est spécifiée en plus du port, le serveur va écouter ce port sur l'interface réseau correspondante. On peut utiliser de multiples directives `Listen` pour spécifier plusieurs adresses et ports à écouter. Le serveur répondra alors aux requêtes sur ces ports et adresses spécifiés.

Par exemple, pour faire en sorte que le serveur accepte des connexions sur les ports 80 et 8000 sur toutes ses interfaces, utilisez :

`Listen 80
Listen 8000`

Pour faire en sorte que le serveur accepte des connexions sur le port 80 sur une interface, et sur le port 8000 sur une autre interface :

`Listen 192.0.2.1:80
Listen 192.0.2.5:8000`

Les adresses IPv6 doivent être entourêes de crochets, comme dans l'exemple suivant :

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

## Remarques spécifiques à IPv6

Un nombre croissant de plateformes implémentent IPv6, et APR supporte IPv6 sur la plupart d'entre elles, ce qui permet à Apache d'allouer des points de connexion (sockets) IPv6 et de traiter des requêtes envoyées sur IPv6.

Les administrateurs d'Apache doivent se préoccuper de la possibilité pour un point de connexion IPv6 de traiter à la fois des connexions IPv4 et des connexions IPv6. Le traitement de connexions IPv4 avec un point de connexion IPv6 utilise des adresses IPv6 traduites en IPv4, qui sont autorisées par défaut sur la plupart des plateformes, mais sont interdites par défaut sous FreeBSD, NetBSD, et OpenBSD, afin de respecter la politique de sécurité du système sur ces plateformes. Mais même sur les systèmes où ces adresses sont interdites par défaut, un paramètre spécial du script `configure` permet de modifier ce comportement pour Apache.

En revanche, sur certaines plateformes comme Linux et Tru64, la seule manière de gérer à la fois IPv6 et IPv4 passe par l'utilisation d'adresses traduites. Si vous voulez qu'Apache gère des connexions IPv4 et IPv6 avec un minimum de points de connexion, ce qui nécessite l'utilisation d'adresses IPv6 traduites en IPv4, utilisez l'option `--enable-v4-mapped` du script `configure`.

L'option `--enable-v4-mapped` est utilisée par défaut sur toutes les plateformes sauf FreeBSD, NetBSD, et OpenBSD; votre Apache a donc probablement été construit avec cette option.

Si vous souhaitez qu'Apache ne gère que des connexions IPv4, sans se soucier de ce que vos plateforme et APR supportent, spécifiez une adresse IPv4 dans toutes les directives `Listen`, comme dans l'exemple suivant :

`Listen 0.0.0.0:80
Listen 192.0.2.1:80`

Si votre plateforme le supporte et si vous souhaitez qu'Apache gère des connexions IPv4 et IPv6 sur des points de connexion séparés (c'est à dire désactiver la traduction des adresses IPv6 au format IPv4), utilisez l'option `--disable-v4-mapped` du script `configure`. `--disable-v4-mapped` est utilisé par défaut sur FreeBSD, NetBSD, et OpenBSD.

## Comment tout ceci fonctionne-t-il avec les hôtes virtuels

La directive `Listen` n'implémente pas les hôtes virtuels. Elle indique simplement au serveur principal sur quels adresses et ports il doit écouter. Si aucune directive `<VirtualHost>` n'est présente, le serveur se comportera de la même façon pour toutes les requêtes acceptées. En revanche, la directive `<VirtualHost>` peut être utilisée pour provoquer une réaction différente du serveur pour un ou plusieurs adresses/ports. Pour implémenter un hôte virtuel, on doit d'abord indiquer au serveur sur quels adresses et ports il doit écouter. Ensuite, une section `<VirtualHost>` doit être créée pour chaque couple adresse+port spécifié afin de définir le comportement de cet hôte virtuel. Notez que si la directive `<VirtualHost>` est définie pour une adresse et un port sur lesquels le serveur n'est pas censé écouter, cet hôte virtuel ne sera pas accessible.

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