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

58 lines
3.0 KiB
Markdown

# 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** :
```nginx
# 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