keepalive_disable
Директива `keepalive_disable` отключает HTTP keep-alive для указанных строк User-Agent. — NGINX HTTP Core
Описание
Директива `keepalive_disable` используется в NGINX для управления поведением HTTP keep-alive соединений на основе строки User-Agent клиента, отправляющего запрос. При указании эта директива позволяет перечислить одну или несколько строк User-Agent, которым будет отказано в преимуществе постоянных соединений. Отключение keep-alive может привести к увеличению задержки, поскольку каждый запрос будет требовать установки и разрыва нового TCP-соединения вместо повторного использования существующего. Директива принимает один или несколько аргументов — строк, задающих подстроки User-Agent. Если User-Agent клиента совпадает с любой из указанных подстрок, клиент не будет использовать keep-alive соединения. Это может быть полезно при работе с проблемными клиентами, у которых известны проблемы с постоянными соединениями, например старые браузеры или отдельные боты. Директива может применяться в контекстах `http`, `server` или `location`, что даёт гибкость в выборе места её использования в зависимости от требуемого сценария. Если директива определена без параметров, она фактически не влияет на поведение и сохраняет поведение по умолчанию — разрешение keep-alive. Напротив, если указана одна или несколько строк, создаётся правило, которое сравнивает входящие запросы с указанными User-Agent и определяет, следует ли отключать keep-alive. Эта директива полезна для тонкой настройки производительности сервера и управления ресурсами, особенно в сценариях, где некоторые клиенты могут вызывать проблемы с производительностью или когда ресурсы ограничены.
Пример конфига
http {
keepalive_disable "MSIE";
keepalive_disable "Opera";
}
server {
location / {
keepalive_disable "FacebookExternalHit";
}
}Будьте осторожны с точными строками User-Agent; частичные совпадения могут привести к непредвиденным результатам.
Добавление слишком большого количества строк User-Agent может ухудшить производительность для этих клиентов, если keep-alive игнорируется.