Un même serveur physique peut héberger des dizaines de sites et d'APIs différentes. Apprenez à router le trafic avec la directive server_name de Nginx, à organiser l'arborescence sites-available et à recharger Nginx sans déconnecter un seul visiteur.
Nginx examine l'en-tête Host HTTP pour déterminer quel bloc de configuration exécuter.
Dossier de stockage contenant les fichiers de configuration de tous vos projets.
Dossier d'activation contenant des liens symboliques pointant vers les sites actifs.
systemctl reload applique les nouveaux domaines sans couper les connexions TCP ouvertes.
# 1. Créer le fichier de configuration dans sites-available $ sudo nano /etc/nginx/sites-available/learnweb.conf # 2. Activer le site en créant un lien symbolique vers sites-enabled $ sudo ln -s /etc/nginx/sites-available/learnweb.conf /etc/nginx/sites-enabled/ # 3. Vérifier rigoureusement qu'aucune faute de frappe n'existe $ sudo nginx -t nginx: the configuration file /etc/nginx/nginx.conf syntax is ok nginx: configuration file /etc/nginx/nginx.conf test is successful # 4. Recharger Nginx à chaud (PAS de restart !) $ sudo systemctl reload nginx # 5. Tester la réponse HTTP avec curl en inspectant les headers $ curl -I http://api.learnweb.com HTTP/1.1 200 OK Server: nginx/1.24.0 Content-Type: application/json; charset=utf-8
Host et au protocole SNI (Server Name Indication) en HTTPS : Lorsque Nginx reçoit une requête sur l'IP 198.51.100.42:80, il lit le champ Host: blog.monsite.com. Si un bloc possède server_name blog.monsite.com;, il lui transmet la requête ; sinon, il l'envoie vers le bloc par défaut (default_server).
| Étape | Commande Système | Conséquence en Cas d'Erreur |
|---|---|---|
| 1. Rédaction | nano /etc/nginx/sites-available/site.conf | Aucun impact (fichier passif) |
| 2. Activation | ln -s ... /etc/nginx/sites-enabled/ | Prêt pour la prise en compte |
| 3. Contrôle de syntaxe | nginx -t | Affiche la ligne et le fichier précis de l'erreur sans toucher au serveur en ligne |
| 4. Application | systemctl reload nginx | Si le test nginx -t a validé, transition 100% transparente sans déconnexion |