Буферы Nginx

Буферы Nginx задают возможность использования оперативной памяти для сохранения представляющей ценность информации. Их размер задается в конфигурационном файле и определяет будет ли использоваться оперативная память или все будет записываться на диск.

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

 

 

Буферы Nginx — client_body_buffer_size и другие

 

Размер буферов определяется четырьмя директивами в конфигурационном файле, в секции server либо в http:

 

client_body_buffer_size

client_header_buffer_size

client_max_body_size

large_client_header_buffers

 

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

 

large_client_header_buffers принимает два значения, разделенных пробелами: максимальное числом и размер буферов для чтения большого заголовка запроса клиента.

Значение размера буфера всегда должно быть меньше client_body_buffer_size, иначе возникнет ошибка 414 (Request-URI Too Large).

Также оно должно быть меньше client_header_buffer_size. В противном случае вернется ошибка 400 (Bad Request).

По умолчанию размер одного буфера равен 8K байт.

 

 

В конфигурационном файле для не самого мощного сервера значения буферов могут быть такими:

client_body_buffer_size 20K;
client_header_buffer_size 4k;
client_max_body_size 12m;
large_client_header_buffers 2 12k;

 

Менять их стоит если имеют место проблемы с производительностью или возникает одна из упомянутых выше ошибок.

Задать их можно для каждого виртуального хоста — для каждого сайта (в секции server) или для всего сервера (в секции http).

 

Читайте про настройку Nginx для работы при высоких нагрузках.