Utilisation d'hôtes virtuels

AvertissementWarning
 

Si vous avez l'intention d'utiliser l'outil de configuration Apache, un utilitaire graphique fourni avec Red Hat Linux, vous ne devez ni compiler les modules de votre serveur Web Apache ni éditer le fichier de configuration httpd.conf de votre serveur Web. Inversement, si vous voulez ajouter des modules à Apache ou éditer manuellement httpd.conf, n'utilisez pas l'outil de configuration Apache.

Pour plus d'informations sur l'outil de configuration Apache, reportez-vous au Guide de personnalisation officiel Red Hat Linux.

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://httpd.apache.org/docs/vhosts/.

NoteRemarque
 

Vous ne pouvez pas utiliser d'hôtes virtuels basés sur le nom avec 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 du serveur Web sécurisé

La configuration par défaut de votre 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é lui sera destiné.

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, modifiez la ligne Listen 80.

Une fois ces opérations accomplies, 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 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. 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ée 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 httpd pour lancer ce nouvel hôte virtuel. Pour obtenir des instructions sur le démarrage et l'arrêt de httpd, reportez-vous à la la section intitulée Démarrage et arrêt httpd.

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://httpd.apache.org/docs/vhosts/. Reportez-vous à la documentation relative à l'hôte virtuel du groupe Apache pour plus de détails sur l'utilisation des hôtes virtuels.