Буферы 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;



На скриншоте фрагмент основного конфигурационного файла веб-сервера с буферами Nginx

Буферы Nginx


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

Если определенная директива уже присутствует в настройках в том же конексте (про контексты по ссылке в конце материала) — нужно поменять её значение. При добавлении второй такой же директивы в тот же контекст тест конфигурации не пройдет.



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

Читайте про конфигурационные файлы Nginx и контексты и виртуальные хосты.

Сказать спасибо