server { listen 80; server_name q2dropzone.xyz; client_max_body_size 6g; proxy_read_timeout 3600s; proxy_send_timeout 3600s; proxy_connect_timeout 60s; # --- Frontend --- location / { root /app/frontend/dist; try_files $uri $uri/ /index.html; } # --- Backend API --- location /api/ { proxy_pass http://backend:8080; 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 https; proxy_buffering off; proxy_request_buffering off; } # --- tus: resumable large file uploads --- location /files/ { proxy_pass http://backend:8080; 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 https; proxy_buffering off; proxy_request_buffering off; } # --- X-Accel-Redirect --- location /internal/public/ { internal; alias ${DISK_ROOT}/public/; } location /internal/userfiles/ { internal; alias ${DISK_ROOT}/; } }