3.0 KiB
3.0 KiB
Problème : nginx ne charge pas les configurations dans conf.d
Date
2025-12-28
Problème
Le site https://zapwall.fr/ pointait vers le mauvais site (LEcoffre au lieu de Zapwall) malgré une configuration correcte dans /etc/nginx/conf.d/zapwall.fr.conf.
Symptômes
- https://zapwall.fr/ servait le site LEcoffre (test-lecoffreio.4nkweb.com)
- La configuration
zapwall.fr.confexistait et était correcte - Le service zapwall fonctionnait correctement sur le port 3001
- Nginx ne chargeait pas les configurations dans
conf.d/
Root cause
La configuration principale nginx (/etc/nginx/nginx.conf dans le conteneur Docker lecoffre_nginx_test) ne contenait pas la directive include /etc/nginx/conf.d/*.conf; pour charger les configurations des sites dans le répertoire conf.d/.
Le fichier nginx.conf était monté depuis l'hôte (/home/debian/sites/test-lecoffreio.4nkweb.com/deploy/nginx/nginx-test.conf) et ne chargeait que la configuration pour test-lecoffreio.4nkweb.com.
Impact
- Le site zapwall.fr n'était pas accessible correctement
- Les utilisateurs voyaient le mauvais site
- La configuration zapwall.fr.conf était ignorée par nginx
Correctifs
- Ajout de la directive
include /etc/nginx/conf.d/*.conf;dans le blochttpde nginx.conf, avant la fermeture du bloc - Modification du fichier sur l'hôte :
/home/debian/sites/test-lecoffreio.4nkweb.com/deploy/nginx/nginx-test.conf - Redémarrage du conteneur nginx pour prendre en compte la modification
Modifications
- Fichier modifié :
/home/debian/sites/test-lecoffreio.4nkweb.com/deploy/nginx/nginx-test.conf(sur l'hôte) - Ajout :
Avant la fermeture du bloc# Include site configurations include /etc/nginx/conf.d/*.conf;http(avant})
Modalités de déploiement
- Arrêter le conteneur nginx :
sudo docker stop lecoffre_nginx_test - Modifier le fichier sur l'hôte :
/home/debian/sites/test-lecoffreio.4nkweb.com/deploy/nginx/nginx-test.conf - Ajouter l'inclusion avant la fermeture du bloc
http - Démarrer le conteneur :
sudo docker start lecoffre_nginx_test - Vérifier la configuration :
sudo docker exec lecoffre_nginx_test nginx -t - Vérifier que zapwall.fr est chargé :
sudo docker exec lecoffre_nginx_test nginx -T | grep "server_name zapwall.fr"
Modalités d'analyse
Pour vérifier si le problème existe :
- Vérifier si l'inclusion existe :
sudo docker exec lecoffre_nginx_test cat /etc/nginx/nginx.conf | grep "include.*conf.d" - Vérifier si zapwall.fr est chargé :
sudo docker exec lecoffre_nginx_test nginx -T | grep "server_name zapwall.fr" - Tester avec curl :
sudo docker exec lecoffre_nginx_test curl -s -k -H "Host: zapwall.fr" https://localhost | head -5
Notes
- Le fichier nginx.conf est monté en lecture seule depuis l'hôte dans le conteneur Docker
- Les modifications doivent être faites sur l'hôte, pas dans le conteneur
- Le conteneur doit être redémarré pour prendre en compte les modifications du fichier monté
- L'inclusion doit être dans le bloc
http, pas après sa fermeture