Ответ
При перезапуске сервера сайт мог вести себя по-разному в зависимости от конфигурации:
Статический контент (HTML, CSS, JS) - обычно загружался без проблем, если файлы уже были собраны и лежали в папке сборки.
API запросы - могли временно не работать (504/502 ошибки), пока сервер не поднялся полностью. Мы обрабатывали это в коде:
async function fetchData() {
try {
const response = await fetch('/api/data');
return await response.json();
} catch (error) {
if (error.message.includes('Failed to fetch')) {
showReconnectMessage();
setTimeout(fetchData, 5000); // Повторный запрос через 5 сек
}
}
}WebSocket соединения - автоматически переподключались благодаря логике в клиенте.
SSR - если использовался, мог быть недоступен до запуска Node.js сервера.
Мы минимизировали влияние:
- Настроили health checks для балансировщика
- Добавили заглушку "Сервер обновляется" при 502 ошибке
- Использовали Service Worker для кеширования критичных ресурсов