Serveur Apache HTTP Version 2.4
Comme l'indique le terme par IP, le serveur doit disposer de diff�rentes paires adresses IP/port pour chaque serveur virtuel par IP. La machine peut poss�der plusieurs connexions physiques au r�seau, ou utiliser des interfaces virtuelles qui sont support�es par la plupart des syst�mes d'exploitation modernes (Consultez la documentation des syst�mes d'exploitation pour plus de d�tails, notamment les "alias IP" et la commande "ifconfig" pour les activer), et/ou utiliser plusieurs num�ros de port.
Selon la terminologie du serveur HTTP Apache, l'utilisation d'une seule adresse IP avec plusieurs ports TCP s'apparente aussi � de l'h�bergement virtuel bas� sur IP.
Il y a deux mani�res de configurer Apache pour le support de
multiples serveurs virtuels. Il suffit soit de faire tourner un
processus r�sident httpd
pour chaque nom de
domaine, soit de faire tourner un unique processus r�sident qui
g�re tous les serveurs virtuels.
Utilisez des processus r�sidents multiples lorsque :
User
,
Group
,
Listen
, et
ServerRoot
diff�rents.Listen
, soit sur toutes
les adresses avec le joker "*", soit uniquement sur des adresses
sp�cifiques. Donc, si vous avez besoin d'�couter une adresse
en particulier, vous devrez le faire pour l'ensemble des
autres adresses (Bien qu'il soit plus simple de lancer un
processus httpd
pour �couter N-1 adresses,
et un autre pour l'adresse restante).Utilisez un unique processus r�sident lorsque :
Cr�ez une installation ind�pendante du programme
httpd
pour chaque serveur virtuel. Pour
chacune d'elle, utilisez la directive
Listen
dans le fichier
de configuration pour d�finir l'adresse IP (ou serveur virtuel)
que le processus r�sident doit g�rer. Par exemple :
Listen 192.0.2.100:80
Il est recommand� d'utiliser une adresse IP plut�t qu'un nom de domaine (consultez Probl�mes DNS avec Apache).
Dans ce cas, un unique processus httpd va g�rer les requ�tes
pour le serveur principal et tous les serveurs virtuels. Dans le
fichier de configuration, la directive
VirtualHost
va servir �
d�finir les autres directives
ServerAdmin
,
ServerName
,
DocumentRoot
,
ErrorLog
et
TransferLog
ou
CustomLog
avec des
valeurs diff�rentes pour chaque serveur virtuel. Par exemple :
<VirtualHost 172.20.30.40:80> ServerAdmin [email protected] DocumentRoot /www/vhosts/www1 ServerName www1.example.com ErrorLog /www/logs/www1/error_log CustomLog /www/logs/www1/access_log combined </VirtualHost> <VirtualHost 172.20.30.50:80> ServerAdmin [email protected] DocumentRoot /www/vhosts/www2 ServerName www2.example.org ErrorLog /www/logs/www2/error_log CustomLog /www/logs/www2/access_log combined </VirtualHost>
Il est recommand� d'utiliser une adresse IP plut�t qu'un nom de domaine comme argument � la directive <VirtualHost> (consultez Probl�mes DNS avec Apache).
Presque toutes les directives de configuration peuvent �tre employ�es dans une directive VirtualHost, � l'exception des directives qui contr�lent la cr�ation du processus et de quelques autres. Pour conna�tre celles utilisables dans une directive VirtualHost, v�rifiez leur Contexte en utilisant l'Index des directives.
SuexecUserGroup
peut �tre
utilis�es � l'int�rieur d'une directive VirtualHost si l'ex�cution se fait
sous suEXEC. (Voir suEXEC).
S�CURIT� : lorsque vous sp�cifiez o� �crire les fichiers journaux, soyez attentif aux risques si quelqu'un d'autre que celui qui a d�marr� Apache dispose des droits d'�criture sur l'emplacement de ces fichiers. Consultez les Conseils sur la s�curit� pour plus de d�tails.