Выбор ответа Senior Балансировка и nginx обновлено
keepalive к upstream
Вопрос
На сервере с nginx десятки тысяч соединений в TIME_WAIT к бэкендам, а латентность растёт. Что вероятнее всего не настроено?
Попробуйте сами
Выберите вариант, и откроется разбор.
Показать ответ и разбор
Коротко
Правильный ответ: Keepalive к upstream: keepalive, HTTP/1.1 и пустой Connection. По умолчанию nginx ходит к бэкенду по HTTP/1.0 и закрывает соединение после каждого запроса: на каждый запрос новый TCP-хендшейк и сокет в TIMEWAIT.
Варианты ответа
worker_processes autoиworker_connectionsпод число ядерgzip onдля ответов бэкенда, чтобы соединения освобождались быстрееclient_max_body_sizeи буферы тела, из-за которых соединения висят- Keepalive к upstream:
keepalive, HTTP/1.1 и пустойConnectionправильный ответ
Разбор
По умолчанию nginx ходит к бэкенду по HTTP/1.0 и закрывает соединение после каждого запроса: на каждый запрос новый TCP-хендшейк и сокет в TIME_WAIT. Пул keepalive-соединений это лечит. Число воркеров, сжатие и лимит размера тела к этому не относятся.
Ответьте сами, а не прочитайте
В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.