story-research-zapwall/fixKnowledge/nginx-conf-d-not-loaded.md

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.conf existait 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

  1. Ajout de la directive include /etc/nginx/conf.d/*.conf; dans le bloc http de nginx.conf, avant la fermeture du bloc
  2. Modification du fichier sur l'hôte : /home/debian/sites/test-lecoffreio.4nkweb.com/deploy/nginx/nginx-test.conf
  3. 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 :
    # Include site configurations
    include /etc/nginx/conf.d/*.conf;
    
    Avant la fermeture du bloc http (avant })

Modalités de déploiement

  1. Arrêter le conteneur nginx : sudo docker stop lecoffre_nginx_test
  2. Modifier le fichier sur l'hôte : /home/debian/sites/test-lecoffreio.4nkweb.com/deploy/nginx/nginx-test.conf
  3. Ajouter l'inclusion avant la fermeture du bloc http
  4. Démarrer le conteneur : sudo docker start lecoffre_nginx_test
  5. Vérifier la configuration : sudo docker exec lecoffre_nginx_test nginx -t
  6. 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 :

  1. Vérifier si l'inclusion existe : sudo docker exec lecoffre_nginx_test cat /etc/nginx/nginx.conf | grep "include.*conf.d"
  2. Vérifier si zapwall.fr est chargé : sudo docker exec lecoffre_nginx_test nginx -T | grep "server_name zapwall.fr"
  3. 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