# SIOP V2 — nginx du conteneur web : statique + proxy /api → API interne. # ${API_UPSTREAM} est substitué au démarrage (envsubst intégré à l'image nginx) ; # même topologie que le proxy Vite en dev : /api est RETIRÉ avant transmission. server { listen 80; server_name _; root /usr/share/nginx/html; index index.html; # DNS Docker interrogé À LA REQUÊTE (et pas une fois au boot) : nginx # démarre et sert le statique même si l'API n'est pas encore résolvable. resolver 127.0.0.11 valid=10s ipv6=off; set $api_upstream http://${API_UPSTREAM}; location /api/ { rewrite ^/api/(.*)$ /$1 break; proxy_pass $api_upstream; proxy_http_version 1.1; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; } # Assets fingerprintés par Vite : cache long immuable location /assets/ { add_header Cache-Control "public, max-age=31536000, immutable"; try_files $uri =404; } # SPA : toute route applicative sert index.html (jamais mis en cache) location / { add_header Cache-Control "no-cache"; try_files $uri /index.html; } }