events { worker_connections 1024; } http { # Configuration SSL ssl_protocols TLSv1.2 TLSv1.3; ssl_prefer_server_ciphers on; # Upstream pour le backend upstream backend { server backend:3000; } # Upstream pour le frontend upstream frontend { server frontend:3001; } # Redirection HTTP vers HTTPS server { listen 80; server_name mygtf.ensup-adm.net; return 301 https://$server_name$request_uri; } # Serveur HTTPS principal server { listen 443 ssl; server_name mygtf.ensup-adm.net; # Certificats SSL ssl_certificate /etc/nginx/ssl/aspnetapp.pfx; ssl_certificate_key /etc/nginx/ssl/aspnetapp.pfx; # Logs access_log /var/log/nginx/access.log; error_log /var/log/nginx/error.log; # Taille max des requêtes client_max_body_size 10M; # ✅ IMPORTANT: Routes API vers le backend location /api/ { proxy_pass http://backend; proxy_http_version 1.1; # Headers proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection 'upgrade'; 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; proxy_set_header X-Forwarded-Host $host; proxy_set_header X-Forwarded-Port $server_port; # Timeouts proxy_connect_timeout 60s; proxy_send_timeout 60s; proxy_read_timeout 60s; proxy_cache_bypass $http_upgrade; } # ✅ Frontend (toutes les autres routes) location / { proxy_pass http://frontend; proxy_http_version 1.1; # Headers proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection 'upgrade'; 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; proxy_cache_bypass $http_upgrade; } } }