keepalive

Директива `keepalive` позволяет поддерживать HTTP keepalive‑соединения в контексте upstream. — NGINX HTTP Core

keepalive
upstream
Синтаксисkeepalive number;
По умолчаниюnone
Контекстupstream
МодульNGINX HTTP Core
Аргументы1

Описание

Директива `keepalive` в NGINX используется внутри блоков `upstream` для управления максимальным количеством неактивных keepalive‑соединений к upstream серверам. Когда keepalive‑соединения включены, NGINX может переиспользовать существующие соединения с upstream серверами для нескольких запросов вместо открытия новых соединений каждый раз, что может повысить производительность и уменьшить задержку. Эта функциональность особенно полезна при высоких нагрузках, так как снижает накладные расходы, связанные с частым установлением и разрывом соединений. Директива принимает один аргумент, который задаёт максимальное количество неактивных соединений, которые могут поддерживаться к upstream серверам. Если поступает запрос, который превышает это число, NGINX закроет наименее недавно использовавшееся неактивное соединение, чтобы освободить место для нового. Важно настраивать этот параметр с учётом ресурсов сервера и ожидаемых шаблонов трафика. Установка слишком малого значения может привести к неэффективности из‑за частых переподключений, в то время как слишком большое значение может привести к исчерпанию ресурсов. В целом использование директивы `keepalive` рекомендуется в конфигурациях NGINX, которые предполагают взаимодействие с upstream серверами, поскольку это способствует более эффективному использованию ресурсов и сокращению времени отклика. Также целесообразно мониторить влияние на производительность после внесения изменений, чтобы обеспечить оптимальные параметры.

Пример конфига

upstream backend {
    server backend1.example.com;
    server backend2.example.com;
    keepalive 16;
}

Убедитесь, что upstream-серверы поддерживают keepalive-соединения; в противном случае это может привести к обрывам соединений.

Слишком большое значение может исчерпать системные ресурсы, что приведёт к проблемам с производительностью.