# Définir quelles adresses et quels ports Apache utilise

Quand Apache démarre, il se connecte à des ports et adresses donnés de la machine et attend les requêtes. Par défaut il écoute sur toutes les adresses de la machines, et sur le port défini par la directive `Port` du fichier de configuration. Cependant, on peut lui indiquer d'écouter sur d'autres ports, ou d'écouter à partir de certaines adresses seulement, ou une combinaison de ces paramètres. Ceci est généralement combiné avec la fonction d'hôte virtuel qui définit comment répond aux différentes adresses IP, nom d'hôte et de ports.

Il existe deux directives pour resteindre ou spécifier sur quels adresses et ports Apache doit écouter.

- BindAddress est employé pour resteindre le serveur à n'écouter qu'une seule adresse, et peut permettre plusieurs serveurs Apache sur la même machine d'écouter différentes adresses IP.
- Listen peut être employé pour permettre à un serveur Apache d'écouter plusieurs adresses et ports.

### BindAddress

Syntaxe : BindAddress [ * | IP-address | hostname ]
Défaut : `BindAddress *`
Contexte : configuration du serveur
Statut : base

Cette directive force le serveur à n'écouter que d'une adresse spécifique. Si l'argument est *, le serveur écoute sur toutes les adresses. Le port d'écoute est défini par la directive `Port` directive. Il ne doit y avoir qu'au plus une seule directive `BindAddress`.

### Listen

Syntaxe : Listen [ port | IP-address:port ]
Défaut : `aucun`
Contexte : configuration du serveur
Statut : base

`Listen` peut être utilisé à la place de `BindAddress` et `Port`. Il indique au serveur d'accepter des requêtes venant d'un port spécifique ou d'une combinaison d'adresse et de port. Si le premier format est employé, avec uniquement un numéro de port, le serveur écoute sur ce port, à la place du port spécifié dans la directive `Port`, sur l'ensemble des interfaces réseau. Si une adresse est donnée en plus du port, le serveur n'écoutera que sur le port de l'interface spécifiée.

Plusieurs directives `Listen` peuvent être utilisées pour spécifier un ensemble d'adresses et de ports d'écoute. Le serveur répondra aux requêtes provenant de n'importe quels de ces adresses et ports.

Par exemple pour autoriser les requêtes sur les ports 80 et 8000, il suffit d'écrire :

       Listen 80
       Listen 8000

Pour que le serveur acccepte des requêtes provenant de deux adresses et ports spécifiques, écrivez :

       Listen 192.170.2.1:80
       Listen 192.170.2.5:8000

## Comment cela fonctionne avec les hôtes virtuels

`BindAddress` et `Listen` n'implémentent pas les hôtes virtuels. Ils indiquent au serveur principal sur quelles adresses et ports écouter. Si aucune directive `<VirtualHost>` n'est employée, le serveur se comportera de la même manière pour toutes les requêtes. `<VirtualHost>` peut être employé pour définir un comportement différent pour un ou plusieurs de ces ports et adresses. Pour implémenter un hôte virtuel, le serveur doit connaître quels ports et quelles adresses employer. Une section `<VirtualHost>` doit être créée pour une adresse et un port spécifique afin de définir le comportement de cet hôte virtuel. Il faut noter que si un hôte virtuel est configuré pour une adresse ou un port sur lequel le serveur n'écoute pas, il est inaccessible.

## Voir également

Voir également la documentation sur les hôtes virtuels, la directive BindAddress, la directive Port, les questions sur le DNS et la section <VirtualHost>.