grpc_socket_keepalive

Директива grpc_socket_keepalive включает поддержку TCP keepalive для gRPC-соединений в NGINX.

Синтаксисgrpc_socket_keepalive on | off;
По умолчаниюoff
Контекстhttp, server, location
Аргументыflag

Описание

Директива grpc_socket_keepalive используется для включения или отключения функции TCP keepalive для gRPC-соединений, обрабатываемых NGINX. Когда она включена, эта директива обеспечивает сохранение неактивных TCP-соединений в рабочем состоянии путем отправки периодических keepalive-зондов. Это важно для поддержания долгоживущих соединений, которые часто используются в gRPC для взаимодействия сервисов. По умолчанию во многих операционных системах TCP keepalive может быть отключён, что может привести к закрытию соединений и прерыванию связи после периода простоя.

Директива принимает значение-флаг, то есть может быть установлена в 'on' (включено) или 'off' (отключено). При установке в 'on' NGINX настроит параметры сокета для keepalive, что позволит отправлять keepalive-пакеты в соответствии с настройками системы (такими как tcp_keepalive_time, tcp_keepalive_intvl и tcp_keepalive_probes). Поэтому для корректной работы keepalive также необходимо отрегулировать эти параметры на уровне системы. Обратите внимание, что включение этой функции без надлежащих настроек сервера может привести к проблемам с производительностью или избыточному сетевому трафику, особенно в средах с высокой нагрузкой.

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

server {
    listen 80;
    grpc_socket_keepalive on;
    location /myservice {
        grpc_pass grpc://backend;
    }
}

Убедитесь, что настройки TCP keepalive вашей операционной системы сконфигурированы надлежащим образом, поскольку NGINX полагается на них для управления keepalive packets.

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

← Ко всем директивам