ajp_read_timeout

Директива `ajp_read_timeout` задаёт значение таймаута для чтения ответа от AJP backend server в NGINX.

Синтаксисajp_read_timeout time;
По умолчанию60s
Контекстhttp, server, location
Аргументы1

Описание

Директива ajp_read_timeout задаёт время (в секундах), в течение которого NGINX будет ждать ответа от AJP (Apache JServ Protocol) server после установления соединения. Этот таймаут применяется конкретно к чтению ответа от upstream AJP server, что важно в сценариях, где при передаче данных может возникать задержка. Если таймаут превышен и ответ не получен, NGINX закроет соединение и запишет соответствующее сообщение об ошибке в лог.

Эта директива особенно полезна для предотвращения зависаний или длительных задержек в обработке, когда AJP backend находится под высокой нагрузкой или испытывает замедления. Установка подходящего таймаута помогает обеспечить предсказуемое поведение NGINX при обработке запросов и сократить использование ресурсов, освобождая worker connections, которые в противном случае могли бы оставаться занятыми бесконечно в ожидании ответа. Указанное значение можно корректировать на основании характеристик производительности приложения, что позволяет настроить его в соответствии с ожидаемой нагрузкой и временем отклика AJP backend services.

При настройке этой директивы важно учитывать, что значение таймаута должно быть задано точно, чтобы соответствовать ожиданиям как клиента, так и backend service. Если установить значение слишком маленьким, существует риск преждевременного прерывания корректных запросов; наоборот, при слишком большом значении это может привести к задержке в уведомлении пользователей об ошибках.

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

http {
    upstream tomcats {
        server 127.0.0.1:8009;
    }
    server {
        listen 80;

        location / {
            ajp_pass tomcats;
            ajp_read_timeout 30s;
        }
    }
}

Установка слишком низкого значения timeout может привести к отбрасыванию легитимных запросов и возврату ошибок клиентам.

Важно, чтобы настройки timeout на всех upstream servers совпадали, чтобы обеспечить согласованную обработку запросов AJP.

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