roosterwijs/frontend/nginx.conf

47 lines
1.6 KiB
Nginx Configuration File

# 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;
# Beveiligingsheaders voor alles wat nginx zelf serveert (de SPA).
# Django zet vergelijkbare headers al op /api en /admin.
add_header X-Content-Type-Options nosniff always;
add_header X-Frame-Options DENY always;
add_header Referrer-Policy same-origin always;
# 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;
}
}