memcached_socket_keepalive

Эта директива включает или отключает функцию TCP keepalive для сокетного соединения memcached. — NGINX HTTP Core

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

Описание

Директива `memcached_socket_keepalive` используется для управления настройками TCP keepalive для соединений с сервером memcached. Включение этой директивы заставляет NGINX периодически отправлять keepalive-пакеты, чтобы поддерживать неактивные соединения с сервером memcached открытыми и предотвращать их закрытие из-за простоя. Это особенно полезно в сценариях, когда NGINX обрабатывает большой объём запросов и должен поддерживать стабильные соединения с сервером memcached для повышения производительности. Использование директивы зависит от контекста: её можно задать на уровнях `http`, `server` или `location`, что позволяет гибко настраивать поведение в зависимости от области применения. Директива принимает флаг в качестве параметра, который может быть установлен в 'on' либо 'off'. При значении 'on' будут отправляться keepalive-пакеты, тогда как 'off' отключает эту функцию. Параметры keepalive могут отличаться в зависимости от опций сокетов операционной системы, поэтому важно убедиться, что keepalive поддерживается и корректно настроен как на стороне клиента (NGINX), так и на стороне сервера (memcached), чтобы эффективно использовать эту функциональность. Если не задано, NGINX не будет отправлять keepalive-пакеты, что может привести к разрывам соединений при ограничениях сети или длительном простое.

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

http {
    memcached_socket_keepalive on;
    
    server {
        location /cache {
            memcached_pass 127.0.0.1:11211;
        }
    }
}

Включение keepalive может увеличить число открытых соединений, что при отсутствии мониторинга потенциально приведёт к исчерпанию системных ресурсов.

Не все версии memcached поддерживают TCP keepalive — убедитесь в совместимости перед использованием.

Конфигурации keepalive в операционной системе могут потребовать настройки для достижения оптимальной производительности.