ajp_buffer_size

Директива `ajp_buffer_size` задаёт размер буфера для чтения начальной части ответа, полученного от AJP-сервера.

Синтаксисajp_buffer_size size;
По умолчанию4k/8k
Контекстhttp, server, location
Аргументы1

Описание

Директива ajp_buffer_size имеет решающее значение для оптимизации обработки ответов, передаваемых по AJP (Apache JServ Protocol) в NGINX. Эта директива задаёт размер буфера, используемого для чтения первой части ответа от AJP-сервера, которая обычно содержит HTTP headers. По сути это позволяет NGINX эффективно управлять тем, сколько данных считывается изначально, снижая задержки и повышая производительность приложений, использующих AJP. Устанавливая этот размер буфера, вы контролируете выделение памяти для обработки заголовков, обеспечивая соответствие размера ожидаемым заголовкам в вашем конкретном случае.

Параметр для ajp_buffer_size принимает значение размера, которое может быть задано в байтах (например, 1k, 2m) или в размерах страниц по умолчанию вашей системы (например, 4k, 8k). Поведение по умолчанию соответствует размеру буферов, заданных директивой ajp_buffers, то есть если вы не зададите ajp_buffer_size, он унаследует этот размер. Однако вы можете настроить это значение так, чтобы оно было меньше или равно размеру буфера, если ожидаются более мелкие заголовки, что может оптимизировать использование памяти в сценариях, где обширные AJP-заголовки не требуются.

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

http {
    upstream tomcats {
        server 127.0.0.1:8009;
        keepalive 10;
    }

    server {
        listen 80;

        location / {
            ajp_buffer_size 2k;
            ajp_pass tomcats;
        }
    }
}

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

При использовании буферов неправильного размера производительность может ухудшиться из-за возросших накладных расходов на выделение памяти.

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

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