Rappel – Définition d’un hôte virtuel
Un hôte virtuel est un point d’entrée sur un serveur web (ici Apache) qui se concrétise par l’association entre un nom de domaine et son site web.
Un serveur web peut donc héberger et gérer plusieurs sites web grâce à ce système de virtualisation. C’est le principe d’un serveur mutualisé.
C’est quoi un Virtual Host par défaut ?
Si un nom de domaine est relié à un serveur web, mais qu’aucun site n’est encore associé à ce dernier, alors Apache va le faire pointer sur le Virtual Host par défaut.
Par défaut, Apache ne prend en compte que les fichiers portant l’extension .conf
Sur la plupart des distributions Linux, le VHost par défaut est celui qui est le premier dans l’ordre alphabétique et s’intitule 000-default.conf.
Il se situe dans le répertoire « /etc/apache2/sites-available ».
Paramétrer un site de fallback
Le cas d’usage est le suivant : vous gérez un serveur web dédié et vous souhaitez que tous les utilisateurs utilisant un nom de domaine relié au serveur dont le site n’est pas encore en ligne, soient redirigés vers un site de « fallback », c’est-à-dire un site « par défaut ».
Chez Webstreet, nous avons par exemple créé comme site de fallback https://groupe.webstreet.io. Dès qu’un client cherche à accéder à un site qui n’est pas encore en production, il arrivere sur ce site de fallback ! 💨
- Paramétrage du DNS : le sous-domaine utilisé pour votre site de fallback doit être relié au serveur dédié. Pour cela, il suffit de faire pointer le champ A du sous-domaine souhaité vers votre serveur.
- Création du site de fallback : il s’agit de créer un site avec la technologie de votre choix.
- Paramétrage du fichier d’hôte virtuel Apache : il s’agit de créer un fichier de configuration Apache en .conf.
Le fichier de configuration Apache
Ce fichier doit être créé ici : /var/www/html/www/sites-available/vhostname.conf. Remplacez « vhostname » par le nom souhaité pour votre Virtual Host.
Chez Webstreet, par convention, le Virtual Host porte le nom de l’URL du site web, par exemple « groupe.webstreet.io.conf ». Voici le contenu de ce fichier :
ServerName groupe.webstreet.io DocumentRoot /var/www/html/www/groupe.webstreet.io Options -Indexes +FollowSymLinks -MultiViews AllowOverride all Order allow,deny allow from all ErrorLog /var/log/apache2/groupe.webstreet.io.error.log CustomLog /var/log/apache2/groupe.webstreet.io.access.log combined 📚 Quelques explications s'imposent :
- La directive ServerName doit être suivie de l’url du site web.
- La directive DocumentRoot doit être suivie du chemin du site web sur votre serveur. Il en est de même pour la directive Directory
- La directive Errorlog permet de dire dans quel fichier les logs d’erreur Apache seront écrits.
- La directive Customlog permet de dire dans quel fichier les logs d’accès Apache seront écrits.
Activer son VirtualHost
Tapez les commandes suivantes dans le CLI, Command-line interface -en français, interface en ligne de commande- de votre serveur :
#activate vhost on server sudo a2ensite $DEPLOYMENT_URL.conf #test configuration and reload apache sudo apache2ctl -t sudo systemctl reload apache2
Résumons
Tout d’abord, nous avons fait pointé le sous-domaine souhaité vers l’IP de notre serveur via le champ A.
Puis, nous avons créé un site dans un sous-dossier de notre serveur, sur Debian « /var/www/html ».
Ensuite nous avons créé un fichier 000-default.conf dans le répertoire « /etc/apache2/sites-available » et nous y avons placé un code permettant de faire le lien entre le sous-domaine et le dossier du site sur le serveur.
Et voilà ! 💥 Votre VirtualHost par défaut est créé. Vos clients ne seront plus effrayés par une page de fallback incompréhensible ! Pensez à eux.
Dans un prochain tutoriel, nous vous expliquerons comment générer un certificat SSL avec Let’s Encrypt afin de sécuriser son site web. 💯