server { listen 7860; client_max_body_size 2G; proxy_read_timeout 600s; proxy_send_timeout 600s; # WebSocket upgrade support proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "upgrade"; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; # FastAPI: API endpoints location /api/ { proxy_pass http://127.0.0.1:8080; } # FastAPI: WebSocket progress location /ws/ { proxy_pass http://127.0.0.1:8080; } # FastAPI: file downloads location /downloads/ { proxy_pass http://127.0.0.1:8080; } # Next.js: everything else (including HMR WebSocket) location / { proxy_pass http://127.0.0.1:3000; } }