Отдельные location: длинный prefix или ^~ для /static/, /assets/; /api/ — в upstream; / — SPA try_files. Приоритет location гарантирует, что API не попадёт в index.html.
Разбор
- Более специфичные location важны для порядка.
- Кэш и CORS на статике и API разные.
- WebSocket endpoint тоже выносите отдельно.
- Единый
server_name упрощает сертификат.
Итог
Разделение location — базовая схема фронт+API на одном хосте.