Serveur Apache HTTP Version 2.4
Configuration du serveur HTTP Apache pour l'�coute sur un port et une adresse IP sp�cifiques.
Modules Apparent�s | Directives Apparent�es |
---|---|
Au d�marrage de httpd, 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 et des adresses sp�cifiques � �couter,
ou une combinaison des deux.
Tout ceci est souvent associ� avec la fonctionnalit�
des h�tes virtuels
qui d�termine la mani�re dont httpd
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 le(s)
port(s) sp�cifi�s ou
une combinaison adresse/port. Si seul un num�ro de port est sp�cifi�
dans la directive Listen
,
le serveur se met � l'�coute sur ce port, sur toutes les interfaces r�seau.
Si une adresse IP est sp�cifi�e en plus du port, le serveur va �couter
sur ce port, uniquement 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 les interfaces, utilisez :
Listen 80 Listen 8000
Pour faire en sorte que le serveur accepte des connexions sur le port 80 pour une interface, et sur le port 8000 pour une autre interface, utilisez :
Listen 192.0.2.1:80 Listen 192.0.2.5:8000
Les adresses IPv6 doivent �tre mises entre crochets, comme dans l'exemple suivant :
Listen [2001:db8::a00:20ff:fea7:ccea]:80
Des directives Listen
imbriqu�es provoqueront une erreur fatale qui
emp�chera le serveur de d�marrer.
(48)Address already in use: make_sock: could not bind to address [::]:80
Voir cette discussion dans le wiki pour plus de conseils pour r�soudre ce probl�me.
Un nombre croissant de plateformes impl�mentent IPv6, et APR supporte IPv6 sur la plupart d'entre elles, ce qui permet � httpd d'allouer des points de connexion (sockets) IPv6 et de traiter des requ�tes envoy�es sur IPv6.
Les administrateurs de httpd 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.
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 httpd.
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 que httpd
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 httpd a donc probablement �t� construit avec cette option.
Si vous souhaitez que httpd 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 que httpd 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.
Dans la plupart des configurations, le second param�tre optionnel
protocol de la directive Listen
n'est pas obligatoire. S'il
n'est pas sp�cifi�, les protocoles par d�faut
sont https
pour le port 443, et http
pour
tous les autres ports. Le protocole sert � d�terminer quel module
doit traiter une requ�te, et � appliquer les optimisations
sp�cifiques au protocole via la directive AcceptFilter
.
Vous ne devez d�finir le protocole que si vous travaillez avec
des ports non standards. Par exemple, pour travailler en
https
sur le port 8443 :
Listen 192.170.2.1:8443 https
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 ou 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 le 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.