Nom de domaine
Pour que votre site soit accessible depuis un nom de domaine, il faut acheter un nom de domaine. Pas de solution "gratuite" ici, il faut passer par un "registrar" (une société qui gère les noms de domaine). Il y a foultitude de possibilités, donc les choix sont forcément personnels. Si vous voulez éviter les comptes multiples, vous pouvez acheter le nom de domaine chez le même fournisseur que votre serveur (scaleway ou OVH. La partie "domaine" est globalement assez pourrie chez OVH, avis perso).
Sinon, dans les recommandations du chef :
- https://porkbun.com/, pas cher, qui ne fait que du domaine et qui le fait bien, mais pas français.
- AWS Route 53 est un peu plus cher, et globalement plus compliqué à utiliser, mais puissant.
Gandi, ancienne pépite française, a complètement perdu son âme et est désormais à éviter.
Évidemment ces avis sont personnels et n'ont pas vocation à être objectifs.
Exemple chez scaleway
Pour acheter un nom de domaine chez scaleway, il faut aller dans le menu Domains and DNS. Cliquer sur "Search domain name" et entrer le nom de domaine que vous voulez acheter.

Il faut ensuite entrer les informations de contact.

et associer ce contact pour le contact propriétaire, administratif et technique. Puis cliquer sur "Validate and continue".

Une page de confirmation s'affiche, cliquer sur "Continuer". La page de liste des domaines apparaît, il faut attendre quelques minutes le temps que le paiement se fasse et que le domaine soit créé.

Une fois le domaine créé, il faut faire pointer le domaine vers l'adresse IP publique de votre instance. Pour cela, cliquez sur le nom de domaine dans la liste "Internal domains".

Cliquer sur l'onglet "DNS Zones" et sur "Root zone".


Il faut ensuite ajouter un enregistrement de type A qui pointe vers l'adresse IP publique de votre instance. Pour cela, cliquer sur "Add records".

Sélectionner le type A et entrer l'adresse IP publique de votre instance. Puis cliquer sur "Add records".

Attendre quelques minutes le temps que les DNS se mettent à jour. Vous pouvez vérifier que le domaine pointe bien vers l'adresse IP publique de votre instance en utilisant la commande dig (si elle n'est pas installée, vous pouvez l'installer avec apt install dnsutils).
dig @ns0.dom.scw.cloud <votre_nom_de_domaine>
Si une ANSWER SECTION apparaît avec l'adresse IP de votre instance, c'est que tout est bon. Sinon, attendez un peu et réessayez.
Vous pouvez créer autant de sous-domaines que vous voulez, il suffit de créer un enregistrement de type A pour chaque sous-domaine.
Chez les autres registrars, c'est à peu près les mêmes étapes, mais les interfaces sont différentes. Vous n'avez pas besoin d'acheter des packages d'hébergement ou autre, juste le nom de domaine.
Utiliser le nom de domaine pour votre application
Une fois que le nom de domaine et créé et qu'un enregistrement A pointe vers l'IP publique de votre instance, vous pouvez utiliser le nom de domaine pour accéder à votre application. Il faut juste modifier la configuration du reverse proxy pour qu'il envoie les requêtes destinées à votre nom de domaine (en-tête Host) vers votre application.
Pour cela, on va modifier le fichier /etc/nginx/sites-available/webapp créé précédemment et changer la ligne server_name pour mettre le nom de domaine désiré. Si vous souhaitez que le site soit accessible sur plusieurs domaines, il suffit de les séparer par un espace (server_name mondomaine.com www.mondomaine.com). Pour l'instant on va juste mettre le nom de domaine principal.
server {
listen 80;
server_name mondomaine.com;
location / {
proxy_pass http://localhost:8080;
proxy_set_header Host $host;
}
}
et redémarrer nginx :
systemctl restart nginx
À partir de maintenant, vous pouvez accéder à votre application avec le nom de domaine.
