fastcgi_socket_keepalive

Директива `fastcgi_socket_keepalive` включает или отключает функцию keepalive для FastCGI socket-соединений. — NGINX HTTP Core

fastcgi_socket_keepalive
httpserverlocation
Синтаксисfastcgi_socket_keepalive on | off;
По умолчаниюoff
Контекстhttp, server, location
МодульNGINX HTTP Core
Аргументыflag

Описание

Директива `fastcgi_socket_keepalive` позволяет управлять тем, следует ли поддерживать постоянные соединения с серверами FastCGI. Если установить 'on', NGINX будет держать FastCGI socket открытым после обработки запроса, что позволит последующим запросам повторно использовать существующее соединение вместо установления новых. Это может привести к повышению производительности за счёт уменьшения накладных расходов на создание и разрушение socket'ов, особенно при высокой нагрузке, когда множество запросов направляются к одному и тому же FastCGI-серверу. Директиву можно задавать внутри контекстов `http`, `server` или `location`, что делает её гибкой — она может применяться глобально или к конкретным блокам серверов и локациям. Флаг также можно установить в 'off', если вы хотите отключить поведение keepalive, в результате чего для каждого запроса к FastCGI-серверу будет устанавливаться новое соединение. Изменение этого параметра требует тщательного учёта способности FastCGI-сервера обрабатывать постоянные соединения, а также любых конфигураций таймаутов, которые могут повлиять на производительность.

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

http {
    server {
        location / {
            fastcgi_pass 127.0.0.1:9000;
            fastcgi_socket_keepalive on;
        }
    }
}

Включение keepalive может привести к непредвиденному поведению, если FastCGI server не поддерживает его должным образом, поэтому рекомендуется провести тестирование.

Чрезмерное количество keepalive соединений может привести к истощению ресурсов на FastCGI server, если ими не управлять должным образом.