keepalive
Директива `keepalive` позволяет поддерживать HTTP keepalive‑соединения в контексте upstream. — NGINX HTTP Core
Описание
Директива `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-соединения; в противном случае это может привести к обрывам соединений.
Слишком большое значение может исчерпать системные ресурсы, что приведёт к проблемам с производительностью.