Что происходило с сайтом на последнем проекте при перезапуске сервера

Ответ

При перезапуске сервера сайт мог вести себя по-разному в зависимости от конфигурации:


  1. Статический контент (HTML, CSS, JS) - обычно загружался без проблем, если файлы уже были собраны и лежали в папке сборки.



  2. 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 сек
    }
  }
}

  1. WebSocket соединения - автоматически переподключались благодаря логике в клиенте.



  2. SSR - если использовался, мог быть недоступен до запуска Node.js сервера.


Мы минимизировали влияние:

  • Настроили health checks для балансировщика
  • Добавили заглушку "Сервер обновляется" при 502 ошибке
  • Использовали Service Worker для кеширования критичных ресурсов