Utilisation d'hôtes virtuels

Vous pouvez utiliser la fonction des hôtes virtuels d'Apache pour exécuter différents serveurs pour différentes adresses IP, différents noms d'hôtes ou différents ports sur le même ordinateur. Si l'utilisation des hôtes virtuels vous intéresse, vous trouverez des informations exhaustives dans la documentation d'Apache installée sur votre ordinateur ou sur le Web à l'adresse http://www.apache.org/docs/vhosts/.

NoteRemarque
 

Vous ne pouvez pas utiliser d'hôtes virtuels basés sur le nom avec Red Hat Linux Secure Web Server parce que l'établissement de la liaison SSL (lorsque le navigateur accepte le certificat sécurisé du serveur Web) se produit avant la demande HTTP identifiant l'hôte virtuel nommé approprié. Si vous voulez utiliser des hôtes virtuels basés sur le nom, ils ne fonctionneront qu'avec votre serveur Web non sécurisé.

Les hôtes virtuels sont configurés dans le fichier httpd.conf, de la manière décrite à la la section intitulée Directives de configuration dans httpd.conf. Lisez cette section avant de commencer à changer la configuration des hôtes virtuels sur votre ordinateur.

Hôte virtuel Red Hat Linux Secure Web Server

La configuration par défaut de votre Red Hat Linux Secure Web Server utilise un serveur non sécurisé et un serveur sécurisé. Les deux serveurs utilisent la même adresse IP et le même nom d'hôte, mais contrôlent des ports différents, et le serveur sécurisé est un hôte virtuel. Cette configuration vous permet de servir des documents sécurisés et non sécurisés avec un maximum d'efficacité. Comme vous le savez, les transmissions HTTP sécurisées sont plus lentes que les non sécurisées, le nombre d'informations échangées étant beaucoup plus important dans le cas des transactions sécurisées. L'utilisation de votre serveur sécurisé pour un trafic Web non sécurisé n'est pas recommandée.

Les directives de configuration pour votre serveur sécurisé se trouvent entre des balises d'hôte virtuel dans le fichier httpd.conf. Si vous devez modifier la configuration de votre serveur sécurisé, il faudra modifier les directives de configuration entre les balises d'hôte virtuel dans le fichier httpd.conf. Si vous voulez activer certaines fonctions (par exemple, les fichiers à inclure côté serveur) pour votre serveur sécurisé, il faudra les activer entre les balises d'hôte virtuel définissant votre serveur sécurisé.

Le serveur Web non sécurisé est configuré comme hôte "non-virtuel" dans le fichier httpd.conf. Autrement dit, les options de configuration du serveur Web non sécurisé se trouvent en dehors des balises d'hôte virtuel dans le fichier httpd.conf. Si vous voulez apporter une modification à votre serveur Web non sécurisé, il faudra modifier les directives de configuration hors des balises d'hôte virtuel dans le fichier httpd.conf.

Par défaut, les serveurs Web sécurisé et non sécurisé partagent le même DocumentRoot, une directive de configuration spécifiée dans httpd.conf. Autrement dit, les serveurs Web sécurisé et non sécurisé recherchent au même endroit les fichiers HTML qu'ils fournissent en réponse aux demandes. Par défaut, le DocumentRoot a pour valeur /var/www/html.

Pour modifier le DocumentRoot de manière à ce qu'il ne soit plus partagé par les serveurs sécurisé et non sécurisé, modifiez l'une des directives DocumentRoot dans httpd.conf. Le DocumentRoot situé hors des balises d'hôte virtuel définit le DocumentRoot pour votre serveur Web non sécurisé. Le DocumentRoot situé à l'intérieur des balises d'hôte virtuel qui définissent votre serveur sécurisé est (à l'évidence) destiné à votre serveur sécurisé.

Si, pour une raison quelconque, vous voulez désactiver le serveur Web non sécurisé sur votre ordinateur, vous pouvez le faire. Votre serveur sécurisé contrôle le port 443, le port par défaut pour les communications Web sécurisées, tandis que votre serveur Web non sécurisé contrôle le port 80, le port par défaut pour les communications Web non sécurisées. Pour empêcher le serveur Web non sécurisé d'accepter des connexions, recherchez, dans le fichier httpd.conf, la ligne suivante :

Port 80

Modifiez la ligne ci-dessus comme suit :

Port 443

Ensuite, identifiez la ligne Listen 80 comme un commentaire.

Listen 80

Modifiez la ligne ci-dessus comme suit :

#Listen 80

Une fois ces opérations accomplies, Red Hat Linux Secure Web Server acceptera des connexions sur le port 443, port par défaut pour des communications Web sécurisées. Toutefois, votre serveur n'acceptera plus de connexions sur le port 80, port par défaut pour les communications non sécurisées, de sorte que le serveur Web non sécurisé sera effectivement désactivé.

Configuration d'hôtes virtuels

La plupart des gens utiliseront probablement Red Hat Linux Secure Web Server sans en modifier la configuration. Pour cela, ils utiliseront la fonction d'hôtes virtuels intégrée, mais ne devront faire aucune manipulation des directives d'hôtes virtuels dans httpd.conf. Toutefois, si vous voulez utiliser la fonction des hôtes virtuels pour d'autres raisons, vous pouvez le faire.

Pour créer un hôte virtuel, vous devrez modifier les lignes d'hôte virtuel, fournies à titre d'exemple, dans le fichier httpd.conf, ou créer votre propre section d'hôte virtuel (n'oubliez pas que les hôtes virtuels nommés ne fonctionneront pas avec votre serveur sécurisé — vous devrez opter pour des hôtes virtuels basés sur l'adresse IP pour pouvoir utiliser des hôtes virtuels compatibles avec SSL ; toutefois, votre serveur non sécurisé prendra en charge tant les hôtes virtuels nommés que les hôtes virtuels basés sur l'adresse IP).

Les lignes d'exemple de l'hôte virtuel se présentent comme suit :

#<VirtualHost ip.address.of.host.some_domain.com>
#    ServerAdmin webmaster@host.some_domain.com
#    DocumentRoot /www/docs/host.some_domain.com
#    ServerName host.some_domain.com
#    ErrorLog logs/host.some_domain.com-error_log 
#    CustomLog logs/host.some_domain.com-access_log common
#</VirtualHost>

Supprimez le commentaire de toutes les lignes (effacez le dièse # au début de chacune d'elles). Ajoutez ensuite les informations correctes concernant votre ordinateur et/ou votre hôte virtuel à chaque ligne.

Dans la première ligne, remplacez ip.address.of.host.some_domain.com par l'adresse IP de votre serveur. Remplacez ServerName par un nom de DNS valide à utiliser pour l'hôte virtuel (autrement dit, n'inventez rien ; interrogez votre administrateur système si vous ignorez comment obtenir un nom de domaine valide).

Vous devrez aussi supprimer le commentaire de l'une des lignes NameVirtualHost dans le fichier httpd.conf :

#NameVirtualHost 12.34.56.78:80
#NameVirtualHost 12.34.56.78

Supprimez les commentaires de l'une des lignes et remplacez l'adresse IP par celle (ainsi que le port, si nécessaire) de cet hôte virtuel.

Il est possible de placer de nombreuses autres directives de configuration entre les balises de l'hôte virtuel, selon la raison pour laquelle vous configurez un hôte virtuel.

Si vous configurez un hôte virtuel et souhaitez qu'il contrôle un port non défini par défaut (80 est le port par défaut pour les communications Web non sécurisées ; 443 est le port par défaut pour les communications Web sécurisées), il faudra configurer un hôte virtuel pour ce port, puis ajouter, dans le fichier httpd.conf, une directive Listen correspondant à ce port.

Pour faire en sorte qu'un hôte virtuel travaille spécifiquement pour ce port, ajoutez le numéro de port à la première ligne de la configuration de l'hôte virtuel. La première ligne doit ressembler à ceci :

<VirtualHost adresse_ip_du_serveur:12331>

Cette ligne créerait un hôte virtuel contrôlant le port 12331. Dans l'exemple précédent, remplacez 12331 par le numéro de port que vous voulez utiliser.

Sous les lignes Listen du fichier httpd.conf, ajoutez une ligne telle la suivante, qui donnera pour instruction au serveur Web de contrôler le port 12331 :

Listen 12331

Vous devez redémarrer le serveur pour lancer un nouvel hôte virtuel.

Pour plus d'informations sur la création et la configuration d'hôtes virtuels nommés et d'hôtes virtuels basés sur l'adresse IP, consultez la page Web http://www.apache.org/docs/vhosts/index.html. Reportez-vous à la documentation relative à l'hôte virtuel du groupe Apache pour plus de détails sur l'utilisation des hôtes virtuels.