proxy_responses

Директива proxy_responses контролирует количество ответов, которые модуль NGINX Stream будет принимать от upstream servers перед закрытием соединения. — NGINX Stream Core

proxy_responses
streamstream server
Синтаксисproxy_responses number;
По умолчаниюnone
Контекстstream, stream server
МодульNGINX Stream Core
Аргументы1

Описание

Директива `proxy_responses` используется в контексте `stream` в NGINX для указания, сколько ответов разрешено принимать от upstream server(s) до того, как NGINX закроет соединение. Эта директива особенно полезна при работе с TCP/UDP-трафиком, где поддержание надёжного канала связи с upstream сервером критично для производительности и надёжности. Если вы зададите конкретное целое число в качестве аргумента этой директивы, NGINX будет отслеживать количество полученных ответов и, как только будет достигнут указанный предел, автоматически закроет соединение. Это может помочь в сценариях, когда известно, что upstream servers предоставляют ограниченное число ответов, либо при реализации определённых режимов обработки ответов. При использовании `proxy_responses` поведение можно контролировать, просто выбрав число, соответствующее вашим требованиям. Например, если вы ожидаете большое количество ответов от серверов в периоды пиковых нагрузок, установка более высокого значения этой директивы может быть полезной. С другой стороны, меньшее значение позволит избежать длительного поддержания открытых соединений, минимизируя использование ресурсов. При настройке этой директивы важно учитывать характер протокола и шаблоны соединений с upstream service, поскольку преждевременное закрытие соединений может привести к избыточным повторным передачам или потере пакетов.

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

stream {
    upstream my_upstream {
        server backend1.example.com:1234;
        server backend2.example.com:1234;
    }

    server {
        listen 1234;
        proxy_pass my_upstream;
        proxy_responses 5;
    }
}

Учтите, что установка слишком малого значения может привести к тому, что корректные ответы будут отброшены из-за преждевременного закрытия соединений.

Слишком большие значения могут привести к исчерпанию ресурсов, если соединения остаются открытыми слишком долго и не обрабатываются должным образом.