Sous-domaines statiques vers localhost sous Linux

Lors du développement d’un service orienté web en local, il est des fois obligatoire de mettre dans les configurations des des hostnames et sous-domaines.Mais vous voulez rester en local, utiliser l’IP 127.0.0.1, mais quand même pouvoir utiliser des noms de domaines, comme si vous les possédiez.
Vous pouvez bien sûr configurer tout les domaines dont vous avez besoin dans votre serveur DNS préféré, mais si vous n’en avez besoin que moins d’une dizaine, cela est un peu trop pour si peu.

Dans ce cas, il est bien plus facile d’utiliser le fichier « /etc/hosts ». En ajoutant à la ligne commençant par « 127.0.0.1 » tout les hostnames dont vous avez besoin (ex : myhost.example.com, test.truc.example.com, test.test.localhost).

Sur certaines distributions de Linux comme Ubuntu ou Debian, il semble il y avoir des fois des problèmes avec cette méthode : si la ligne commençant par « 127.0.1.1 » n’est pas commenté (la ligne contenant l’hostname de votre ordinateur), les hostnames ajoutés avant ne fonctionneront pas.
Il suffit donc juste de commenter ou supprimer cette ligne (commenter avec un « # »), et ajouter l’hostname de votre machine à la ligne commençant par « 127.0.0.1 ».

Ce petit tricks permet donc de prétendre que plusieurs domaines/sous-domaine/hostname pointent en fait sur localhost/127.0.0.1, ce qui peut être pratique des fois.

Pour tester si ça marche, vous pouvez mettre en place un virtualhost avec un ServerName identique que celui mit dans /etc/hosts avec apache, et y accéder avec votre navigateur. Vous pouvez aussi vous connecter en ssh à l’hostname que vous avez mis dans /etc/hosts (vous devez avoir openssh-server installé sur votre machine). Cela ne sert à rien d’utiliser les commandes comme dig ou nslookup pour tester, car  ils font directement des requêtes aux vrais serveurs DNS configuré sur vos interfaces réseaux, sans regardé dans /ect/hosts.

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *