Utilisation d'hôtes virtuels

Vous pouvez utiliser la fonction d'hôtes virtuels d'Apache pour exécuter différents serveurs pour différentes adresses IP, différents noms d'hôte ou différents ports sur le même ordinateur. Si vous vous intéressez à l'utilisation d'hôtes virtuels pour différentes adresses IP ou différents noms d'hôte sur votre ordinateur, vous trouverez des informations complètes dans la documentation relative à Apache figurant sur votre ordinateur ou sur le site 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 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 à l'intérieur du fichier httpd.conf et du fichier httpd.conf.ssl, comme décrit à la la section intitulée Directives de configuration. Lisez cette section avant de commencer à changer la configuration des hôtes virtuels sur votre ordinateur.

Hôte virtuel Red Hat Linux Secure Server

La configuration par défaut de Red Hat Linux Secure Server lance deux serveurs Web : un Red Hat Linux Secure Server et un serveur Web non sécurisé. Les deux serveurs utilisent les mêmes adresse IP et nom d'hôte, mais scrutent des ports différents et le Red Hat Linux Secure Server 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. Ainsi, l'utilisation de Red Hat Linux Secure Server pour un trafic Web non sécurisé n'est pas appropriée.

Les directives de configuration spécifiquement applicables à Red Hat Linux Secure Server figurent dans des balises de l'hôte virtuel figurant dans le fichier httpd.conf.ssl. Si vous devez modifier quelque chose à la configuration de Red Hat Linux Secure Server, changez les directives de configuration à l'intérieur des balises de l'hôte virtuel dans le fichier httpd.conf.ssl. Si vous voulez activer certaines fonctions (par exemple, fichiers à inclure côté serveur) pour Red Hat Linux Secure Server, elles devront être activées à l'intérieur des balises de l'hôte virtuel définissant Red Hat Linux Secure Server.

Le serveur Web non sécurisé est configuré dans le fichier httpd.conf. Si vous voulez modifier quelque chose concernant votre serveur Web non sécurisé, modifiez les directives de configuration du fichier httpd.conf.

Par défaut, les serveurs Web sécurisé et non sécurisé partagent la même DocumentRoot, directive de configuration spécifiée dans le fichier httpd.conf . Autrement dit, les serveurs Web sécurisé et non sécurisé recherchent au même endroit les fichiers HTML qu'ils vont fournir en réponse à des demandes. Par défaut, le DocumentRoot est paramétré sur /home/httpd/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. La directive DocumentRoot du fichier httpd.conf définit le DocumentRoot pour votre serveur Web non sécurisé. La directive DocumentRoot située dans les balises de l'hôte virtuel du fichier httpd.conf.ssl définissant Red Hat Linux Secure Server est destinée à votre serveur Web sécurisé.

Si, pour une raison quelconque, vous voulez désactiver le serveur Web non sécurisé sur votre ordinateur, vous pouvez le faire. Red Hat Linux Secure Server scrute le port 443, port par défaut pour les communications Web sécurisées, tandis que votre serveur Web non sécurisé scrute le port 80, port par défaut pour des communications Web non sécurisées. Pour faire en sorte que le serveur Web non sécurisé cesse d'accepter des connexions, recherchez dans le fichier httpd.conf la ligne suivante :

Port 80

Modifiez la ligne ci-dessus comme suit :

Port 443

Commentez ensuite la ligne Listen 80 du fichier httpd.conf.ssl :

Listen 80

Modifiez la ligne ci-dessus comme suit :

#Listen 80

Une fois ces opérations accomplies, Red Hat Linux Secure 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 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 vous ne pouvez utiliser des hôtes virtuels basés sur le nom qu'avec votre serveur Web non sécurisé ; vous devrez utiliser des hôtes virtuels basés sur adresse IP si vous avez besoin d'autres hôtes virtuels compatibles SSL. Les exemples de lignes 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 les commentaires de toutes les lignes. Ajoutez ensuite les informations correctes concernant votre ordinateur et/ou votre hôte virtuel à chaque ligne.

A la première ligne, remplacez adresse.ip.domaine.com par l'adresse IP de votre propre serveur. Remplacez ServerName par un nom DNS valable à utiliser pour l'hôte virtuel. Autrement dit, n'inventez rien. Interrogez votre Administrateur système si vous ne savez pas comment obtenir un nom de domaine valable.

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 le commentaire d'une des lignes et remplacez le l'exemple d'adresse IP par l'adresse IP (et le port, si nécessaire) correspondant à 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 voulez qu'il scrute un port autre que celui par défaut (à savoir le port 80 pour les Web non sécurisées, ou le port 443 pour les communications Listen sécurisées), vous devez configurer un hôte virtuel pour ce port et ajouter une directive Listen dans le fichier httpd.conf, 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 scrutant le port 12331. Ajoutez l'adresse IP de votre serveur et substituez le numéro de port que vous voulez utiliser à 12331 dans l'exemple précédent.

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

Listen 12331

Vous devez redémarrer votre serveur (voir la la section intitulée Démarrage et arrêt de votre serveur dans Chapitre 3) pour lancer un nouvel hôte virtuel.

Vous trouverez sur le Web des informations plus complètes sur la création et la configuration d'hôtes virtuels basés sur le nom, à l'adresse 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.