proxy_responses
Директива proxy_responses контролирует количество ответов, которые модуль NGINX Stream будет принимать от upstream servers перед закрытием соединения. — NGINX Stream Core
Описание
Директива `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;
}
}Учтите, что установка слишком малого значения может привести к тому, что корректные ответы будут отброшены из-за преждевременного закрытия соединений.
Слишком большие значения могут привести к исчерпанию ресурсов, если соединения остаются открытыми слишком долго и не обрабатываются должным образом.