Pour pointer un domaine vers une VM, vous créez chez votre hébergeur DNS un enregistrement A qui associe le domaine à l'adresse IP publique de la VM. Ajoutez un enregistrement AAAA si la VM a une adresse IPv6, puis un enregistrement pour www. Attendez ensuite que les anciens caches DNS expirent, vérifiez le résultat avec dig, puis configurez votre serveur web et le HTTPS. La partie DNS ne prend que quelques minutes.
Ce qu'il vous faut avant de commencer
Rassemblez ces quatre éléments avant de toucher aux enregistrements. Vous éviterez de chercher la panne au mauvais endroit.
- Un nom de domaine enregistré, par exemple sur la page des noms de domaine FelCloud ou chez un autre registraire.
- L'accès au panneau DNS là où sont gérés les serveurs de noms du domaine.
- Une VM en marche avec une adresse IP publique, comme un serveur VPS FelCloud.
- Un accès SSH à la VM, pour configurer le serveur web.
Trouvez qui héberge votre DNS (vos serveurs de noms)
Votre registraire et votre hébergeur DNS ne sont pas toujours la même entreprise. L'hébergeur DNS est celui qui gère les serveurs de noms de votre domaine. C'est là, et nulle part ailleurs, que vous modifiez les enregistrements. Vérifiez-les depuis un terminal :
dig NS example.com +shortSi la réponse affiche les serveurs de noms de votre registraire, modifiez le DNS dans son panneau. Si elle affiche un autre fournisseur, comme Cloudflare, modifiez les enregistrements chez lui. Modifier le mauvais panneau est la raison la plus fréquente pour laquelle « rien ne se passe ».
Vérifiez que votre VM a une adresse IP statique
Un enregistrement DNS pointe vers une IP, pas vers une machine. Si l'IP publique de la VM change quand vous l'arrêtez ou la reconstruisez, votre site tombe. Beaucoup de clouds proposent une adresse IP statique ou réservée qui ne change pas. Réservez-en une avant de pointer un domaine vers une VM, pour que vos enregistrements restent valides. Notez l'adresse IPv4 et, si elle existe, l'adresse IPv6.
Quels enregistrements DNS pour pointer un domaine vers une VM ?
Seuls deux ou trois types d'enregistrements comptent ici. Le tableau ci-dessous montre le rôle de chacun. La liste complète se trouve dans la liste des types d'enregistrements DNS sur Wikipédia (en anglais).
| Enregistrement | Associe un nom à | À utiliser pour | Exemple de valeur |
|---|---|---|---|
| Enregistrement A | Une adresse IPv4 | Le domaine racine et tout sous-domaine | 203.0.113.10 |
| Enregistrement AAAA | Une adresse IPv6 | Les mêmes noms, si votre VM a l'IPv6 | 2001:db8::10 |
| Enregistrement CNAME | Un autre nom de domaine | Les sous-domaines comme www qui suivent la racine | example.com. |
| Enregistrement MX | Un serveur de messagerie | L'e-mail uniquement : n'y touchez pas ici | 10 mail.example.com. |
Pourquoi pas d'enregistrement CNAME à la racine
Un nom qui porte un enregistrement CNAME ne peut porter aucun autre enregistrement. Or la racine de votre domaine (souvent notée @) porte toujours des enregistrements SOA et NS. Elle ne peut donc pas être un CNAME. Cette règle vient de la RFC 1034, section 3.6.2. Utilisez un enregistrement A pour la racine. Un enregistrement CNAME convient très bien pour www.
Comment pointer un domaine vers une VM en 6 étapes
Voici la marche à suivre complète pour pointer un domaine vers une VM. Elle est la même pour un .com, un .tn, un .tech ou toute autre extension.
- Baissez le TTL un jour avant. Si vous quittez un ancien serveur, réglez le TTL des enregistrements existants sur 300 secondes. Attendez au moins la durée de l'ancien TTL avant de basculer.
- Ajoutez un enregistrement A pour la racine. Hôte
@, valeur = l'adresse IPv4 de votre VM. - Ajoutez un enregistrement AAAA pour la racine, seulement si la VM répond vraiment en IPv6.
- Ajoutez www. Utilisez un enregistrement CNAME vers la racine, ou un second enregistrement A avec la même IP.
- Supprimez les enregistrements en conflit. Retirez les anciens enregistrements A, AAAA ou de « parking » sur les mêmes noms. Deux enregistrements A avec des IP différentes répartissent vos visiteurs entre deux serveurs.
- Vérifiez la réponse avec dig (section suivante), puis configurez la VM.
Exemple d'enregistrement A et d'enregistrement CNAME à copier
Voici le résultat au format fichier de zone. La plupart des panneaux affichent les mêmes champs : nom, TTL, type et valeur. Remplacez les IP de documentation par les adresses de votre VM.
; Pointer example.com vers la VM
example.com. 300 IN A 203.0.113.10
example.com. 300 IN AAAA 2001:db8::10
www.example.com. 300 IN CNAME example.com.Où saisir les enregistrements dans votre panneau DNS
Chaque panneau DNS est un peu différent, mais pour pointer un domaine vers une VM, les champs sont toujours les mêmes. Ouvrez les réglages DNS ou « zone » de votre domaine et cliquez sur « Ajouter un enregistrement ». Choisissez le type (A, AAAA ou CNAME), saisissez l'hôte, collez la valeur et réglez le TTL.
Dans le champ hôte, la plupart des panneaux attendent @ pour la racine et simplement www pour le sous-domaine. Certains ajoutent le domaine automatiquement : taper www.example.com créerait alors www.example.com.example.com. Vérifiez l'aperçu avant d'enregistrer.
Une fois que tout fonctionne, vous pouvez remonter le TTL à 3600 secondes ou plus. Un TTL élevé réduit le nombre de requêtes. Un TTL bas accélère les changements.
Propagation DNS : combien de temps faut-il vraiment ?
« Propagation DNS » est un nom un peu trompeur. Rien n'est poussé à travers Internet. Les résolveurs gardent simplement les réponses en cache jusqu'à la fin du TTL, puis redemandent.
- Un nouvel enregistrement répond en général en quelques minutes. Aucun résolveur n'a d'ancienne réponse en cache.
- Un enregistrement modifié est mis à jour quand l'ancien TTL expire. C'est pourquoi il faut baisser le TTL à l'avance.
- Un changement de serveurs de noms est le plus long. La délégation du registre peut rester en cache jusqu'à deux jours pour certaines extensions. [VERIFY: TTL de délégation pour le .tn]
Vérifier la propagation DNS avec la commande dig
La commande dig interroge directement le DNS, sans passer par le cache du navigateur. Interrogez d'abord votre propre serveur de noms, puis des résolveurs publics :
dig A example.com +short
dig AAAA example.com +short
dig @1.1.1.1 www.example.com +short
dig @8.8.8.8 example.com +shortQuand chaque résolveur renvoie l'IP de votre VM, la propagation DNS est terminée pour ces résolveurs. La commande dig affiche aussi le TTL restant si vous retirez +short. Sous Windows sans dig, nslookup example.com 1.1.1.1 donne la même réponse. Si dig affiche la bonne IP mais que le navigateur montre l'ancien site, videz le cache DNS du navigateur ou testez en navigation privée.
Configurer la VM pour qu'elle réponde à votre domaine
Le DNS ne fait qu'envoyer les visiteurs vers l'IP. La VM doit encore accepter la connexion et savoir quel site servir.
Ouvrez les ports 80 et 443
Autorisez HTTP et HTTPS à deux endroits : le pare-feu du cloud (ou groupe de sécurité) et le pare-feu de la VM. Sous Ubuntu avec UFW :
sudo ufw allow 80/tcp
sudo ufw allow 443/tcpIndiquez votre nom de domaine au serveur web
Avec Nginx, listez les deux noms dans server_name. Enregistrez ce fichier sous /etc/nginx/sites-available/example.com, activez-le, lancez sudo nginx -t puis rechargez Nginx.
server {
listen 80;
listen [::]:80;
server_name example.com www.example.com;
root /var/www/example.com;
index index.html;
}Ajoutez le HTTPS gratuit avec Let's Encrypt
Let's Encrypt délivre des certificats gratuits. Son client, Certbot, vérifie via le port 80 que le domaine pointe bien vers votre VM. Terminez donc le DNS d'abord, puis lancez :
sudo certbot --nginx -d example.com -d www.example.comCertbot modifie la configuration Nginx pour vous et met en place le renouvellement automatique.
Résoudre les problèmes courants
Quand vous pointez un domaine vers une VM et que le site ne s'affiche toujours pas, la cause entre presque toujours dans l'un de ces cas. Trouvez le symptôme, puis vérifiez la cause.
| Symptôme | Cause probable | Solution |
|---|---|---|
| dig renvoie l'ancienne IP | Ancien TTL pas encore expiré, ou mauvais panneau modifié | Revérifiez les serveurs de noms et attendez la fin de l'ancien TTL |
| La racine marche, pas www | Aucun enregistrement pour www | Ajoutez un enregistrement CNAME ou A pour www |
| Marche sur certains réseaux seulement | Enregistrement AAAA défectueux | Corrigez l'IPv6 de la VM ou supprimez l'enregistrement AAAA |
| Connexion refusée ou délai dépassé | Port 80/443 bloqué ou serveur web arrêté | Vérifiez les deux pare-feu et systemctl status nginx |
| Certbot échoue | Le DNS ne pointe pas encore vers la VM | Confirmez avec dig, puis relancez Certbot |
| Le site tombe après un redémarrage de la VM | Pas d'adresse IP statique | Réservez une IP statique et mettez à jour l'enregistrement A |
Et maintenant ?
Pour pointer un domaine vers une VM, il vous faut un enregistrement A, un enregistrement AAAA si besoin, un enregistrement pour www et un serveur web bien configuré. Vérifiez chaque couche dans l'ordre : serveurs de noms, enregistrements, pare-feu, serveur web, HTTPS. La plupart des problèmes se trouvent à la première étape oubliée.
Si vous partez de zéro, vous pouvez rechercher un nom de domaine et déployer une VM sur FelCloud, et consulter nos tarifs à l'usage. Pour d'autres guides de ce type, parcourez le blog FelCloud.