server { listen 80; # Docker внутренний DNS — резолвим хосты в момент запроса, а не при старте nginx resolver 127.0.0.11 valid=30s; # API запросы → FastAPI backend location /api/ { set $backend http://backend:8000; proxy_pass $backend; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; } # Всё остальное → Vite dev server (с поддержкой WebSocket для HMR) location / { set $frontend http://frontend:5173; proxy_pass $frontend; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "upgrade"; proxy_set_header Host $host; proxy_cache_bypass $http_upgrade; } }