keepalive

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

Синтаксисkeepalive number;
По умолчаниюnone
Контекстupstream
Аргументы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-соединения; в противном случае это может привести к обрывам соединений.

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

← Ко всем директивам