Выбор ответа Junior Балансировка и nginx спрашивают часто обновлено

502 или 504

Вопрос

nginx отдаёт клиентам 504 Gateway Timeout. Что это скорее всего значит?

Попробуйте сами

Выберите вариант, и откроется разбор.

Показать ответ и разбор

Коротко

Правильный ответ: Бэкенд не ответил за proxyreadtimeout, например из-за медленной базы. 504 nginx возвращает, когда истёк таймаут ожидания ответа или подключения к upstream.

Варианты ответа

  1. Бэкенд не ответил за proxy_read_timeout, например из-за медленной базыправильный ответ
  2. Бэкенд не запущен и отказывает в соединении на порту upstream
  3. Клиент закрыл соединение раньше, чем nginx получил ответ от бэкенда
  4. Сработал лимит limit_req и nginx отклонил лишние запросы клиента

Разбор

504 nginx возвращает, когда истёк таймаут ожидания ответа или подключения к upstream. Отказ в соединении (процесс упал, порт не слушается) даёт 502. Закрытие соединения клиентом nginx пишет в лог как 499. Лимит запросов по умолчанию даёт 503 (или код из limit_req_status).

Ответьте сами, а не прочитайте

В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.