ajp_buffer_size
Директива `ajp_buffer_size` задаёт размер буфера для чтения начальной части ответа, полученного от AJP-сервера.
Описание
Директива 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-сервера.