# Nginx: serveert de React-app en stuurt API/admin door naar gunicorn. server { listen 80; server_name _; # Upload-/postlimiet wat ruimer (bv. importbestanden later). client_max_body_size 20M; # Door Django verzamelde statische bestanden (o.a. admin-CSS). # Deze map komt uit het gedeelde volume 'static_volume'. location /static/ { alias /static/; access_log off; expires 30d; } # API-verzoeken naar de Django-backend (gunicorn). location /api/ { proxy_pass http://backend:8000; 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; } # Django-admin loopt ook via de backend. location /admin/ { proxy_pass http://backend:8000; 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; } # Alle overige paden: de single-page React-app. # try_files zorgt dat client-side routes terugvallen op index.html. location / { root /usr/share/nginx/html; try_files $uri $uri/ /index.html; } }