Проверяет умение диагностировать таймауты на уровне сети и прокси, когда ресурсы сервера в норме, что критично для поддержки стабильного API.
Ошибка 504 Gateway Timeout и сообщение socket hang up обычно приходят не от самого приложения, а от промежуточного слоя: nginx, HAProxy, API Gateway, ingress-контроллера или клиентской библиотеки. Они означают, что соединение было установлено, но ответ не пришёл вовремя, либо соединение было разорвано до получения ответа. Низкая загрузка CPU и памяти как раз типична для такой ситуации: сервер не работает, а ждёт.
Сначала смотрим логи прокси и приложения с request id, затем распределённый трейсинг (Jaeger, OpenTelemetry), чтобы увидеть, на каком шаге запрос зависает. Полезно снять метрики latency по эндпоинтам и проверить, не растёт ли время ответа постепенно.
# nginx: увеличиваем таймауты до upstream
proxy_connect_timeout 10s;
proxy_send_timeout 60s;
proxy_read_timeout 60s;
# Node.js: таймаут на fetch
const controller = new AbortController();
setTimeout(() => controller.abort(), 5000);
await fetch(url, { signal: controller.signal });
Итог: 504 при свободных ресурсах — это почти всегда проблема ожидания, а не мощности. Применяйте согласованные таймауты, трейсинг и асинхронную обработку долгих операций, чтобы такие ошибки не доходили до пользователя.
Уровень
Рейтинг:
5
Сложность:
6
Навыки
Node.js
Networks
Ключевые слова
Подпишись на Node.js Developer в телеграм