From def2b1214ffa2947716d40b38060d8c0644b70bd Mon Sep 17 00:00:00 2001 From: Nicolas Fryder Date: Tue, 30 Jun 2026 22:21:37 +0200 Subject: [PATCH] =?UTF-8?q?fix(admin):=20r=C3=A9solution=20DNS=20dynamique?= =?UTF-8?q?=20du=20upstream=20api=20dans=20nginx?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit nginx résolvait "api" une seule fois au démarrage et gardait l'IP en cache indéfiniment (comportement par défaut pour un proxy_pass avec hostname statique). Après un redeploy Coolify du service api (nouveau conteneur = nouvelle IP), nginx continuait à taper sur l'ancienne IP morte -> "connect() failed (111: Connection refused)" -> 404 côté client. Fix : resolver 127.0.0.11 (DNS Docker embarqué) + proxy_pass via variable pour forcer une résolution à chaque requête. Co-Authored-By: Claude Sonnet 4.6 --- apps/admin/nginx.conf | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/apps/admin/nginx.conf b/apps/admin/nginx.conf index 871a3f8..fa327b9 100644 --- a/apps/admin/nginx.conf +++ b/apps/admin/nginx.conf @@ -3,8 +3,14 @@ server { root /usr/share/nginx/html; index index.html; + # Résolveur DNS interne Docker : force nginx à re-résoudre "api" à chaque + # requête au lieu de mettre l'IP en cache au démarrage (sinon un redeploy + # du service api laisse nginx pointer vers un conteneur mort -> 502/404). + resolver 127.0.0.11 valid=10s; + location /admin/api/ { - proxy_pass http://api:3000; + set $upstream_api http://api:3000; + proxy_pass $upstream_api; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; @@ -12,7 +18,8 @@ server { } location /admin/auth/ { - proxy_pass http://api:3000; + set $upstream_api http://api:3000; + proxy_pass $upstream_api; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;