fastcgi_socket_keepalive
Директива `fastcgi_socket_keepalive` включает или отключает функцию keepalive для FastCGI socket-соединений. — NGINX HTTP Core
Описание
Директива `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, если ими не управлять должным образом.