Le principe des Serveurs Virtuels consiste à faire fonctionner un ou plusieurs serveurs Web sur une même machine. Dans ce tutoriel nous allons voir comment configurer des Virtual Host avec Centos et Apache en 7 étapes.
Sommaire de l'article
Le principe des Virtual Hosts
Les serveurs virtuels peuvent être soit « par-IP » où une adresse IP est attribuée pour chaque serveur Web, soit « par-nom » où plusieurs noms de domaine se côtoient sur des mêmes adresses IP. L’utilisateur final ne perçoit pas qu’en fait il s’agit d’un même serveur physique.
Apache a été le précurseur des serveurs proposant cette méthode de serveurs virtuels basés sur les adresses IP. Les versions 1.1 et suivantes proposent les deux méthodes de serveurs virtuels : par-IP et par-nom. Cette deuxième méthode est parfois également appelée host-based ou serveur virtuel non-IP.
Etape 1 Créer un nouveau répertoire
La première étape consiste à créer un répertoire du nom du domaine (généralement) dans l’arborescence Apache. Ce répertoire accueillera tous les fichiers du site. Cet emplacement sera la racine dans votre fichier virtuel Apache.
#mkdir /var/www/test.quick-tutoriel.com
Etape 2 : définir les permissions
Nous ne devons pas laisser les droits root sur les répertoires. Nous allons utiliser l’utilisateur spécial apache pour affecter les bons droits.
#chown –R apache:apache /var/www/test.quick-tutoriel.com/public_html/
Ensuite il est nécessaire de s’assurer que tout le monde sera en mesure de lire les nouveaux fichiers.
#chmod 755 /var/www
Etape 3 : Créer une page
Vous devez créer une page index.html dans le répertoire idoine. Nous pouvons rajouter du texte pour s’assurer, lors de nos tests que les redirections fonctionnent correctement.
#vim /var/www/test;quick-tutoriel.com/public_html/index.html
Vous pouvez prendre ce modèle par exemple (A vous ensuite de l’adapter en fonction de vos besoins)
<html> <head> <title>test.quick-tutoriel.com</title> </head> <body> <h1>Success: You Have Set Up a Virtual Host</h1> </body> </html>
Etape 4 : Configurer des Virtual Hosts
L’activation des hôtes virtuels se fait dans le fichier de configuration http.conf. Editer-le.
#vim /etc/httpd/conf/httpd.conf
Assurez-vous que la ligne suivante ne soit pas en commentaire :
#Listen 12.34.56.78:80 Listen 80
Déplacez-vous à la fin du fichier et repérez une section nommée NameVirtualHost *:80
C’est ici que vous gérez vous hôtes virtuels. Voyons maintenant les lignes les plus importantes :
- NameVirtualHost : Décommentez cette ligne pour activer la gestion des virtual hosts. * indique que toute les ip passant par le port 80 seront un hôte virtuel. Généralement vous n’avez qu’une IP sur votre serveur, si l’étoile vous gêne, vous pouvez la remplacer par l’adresse IP du serveur
- <VirtualHost *:80></VirtualHost> : permet de définir les paramètres « virtuels » de votre site. Si vous avez remplacé * par une IP, il faut faire pareil ici.
- Document Root : élément clé de la gestion des hôtes virtuel, vous devez lui indiquer le chemin complet saisi plus haut.
- Server Name : autre élément clé, vous devez indiquer ici le nom de domaine de votre hôte.
- ServerAlias : vous pouvez utiliser cet argument supplémentaire, non obligatoire, pour indiquer une variante du nom de domaine. Typiquement on l’utilise soit pour enlever ou pour rajouter les www à un site.
- Server admin : vous indiquer ici le contact pour le site, généralement on met l’adresse mail du contact.
- The Error Logs and Custom Logs : permet de définir un emplacement personnalisé pour les fichiers de log des erreurs.
Etape 5 : Redémarrer le serveur Apache
Pour que les modifications soient prises en compte vous devez redémarrer le serveur Apache.
# service httpd restart
Etape 6 : Configuration des hôtes
Si vous n’avez pas plusieurs noms de domaine à disposition pour les faire pointer vers l’IP de votre serveur Apache, vous pouvez soit éditer le fichier hosts et rajouter des noms de domaine factices. Cela ne marchera qu’avec un navigateur local.
#vim /etc/hosts # Host Database # # localhost is used to configure the loopback interface # when the system is booting. Do not change this entry. ## 127.0.0.1 localhost #Virtual Hosts 12.34.56.789 test.quick-tutoriel.com
Si vous avez un nom de domaine, vous pouvez créer plusieurs sous-domaines et affecter l’adresse IP de votre serveur. Par exemple avec Cpanel dans Editeur avancé de zone DNS.
Etape 7 : Test de la configuration
Lancer votre navigateur et taper un de vos noms de domaine, vous devez arriver sur le bon virtual host.
Nom de domaine : test.quick-tutoriel.com
Nom de domaine : emailpoubelle.quick-tutoriel.com :
En fonction du domaine, Apache redirige vers le bon virtual host. Vous pouvez le voir dans le nom dans l’onglet.
Astuce du pro
Si vous laisser tel quel, si vous taper l’adresse IP du serveur, vous tomberez sur le premier hôte virtuel défini dans votre configuration. Pour pallier à ce souci (si cela en est un), vous pouvez définir un hôte virtuel bidon. Comme cela, si vous tapez l’adresse du serveur vous arrivez sur une page classique d’Apache. Vous pouvez aussi personnaliser cette page.
Pour arrivez à cette configuration rajouter un hôte virtuel bidon. Voici ma config de base :
<VirtualHost *:80> DocumentRoot /var/www/ ServerAdmin root@example.com ErrorLog /var/log/httpd/error_log TransferLog /var/log/httpd/access_log </VirtualHost>
En tapant l’IP du serveur vous devriez arriver sur quelque chose de similaire.