Какие соображения влияют на настройку nginx client_body_buffer_size
?
Я установил это на 10m
для веб-сайта, на который пользователи загружают фотографии и изображения-мемы (вроде как 9gag). Обратите внимание, что client_max_body_size
установлен на 10m
также. В целом, я считаю, что веб-сервер должен принимать запросы POST с изображениями размером до 10 МБ (политика веб-сайта) - и, следовательно, обе эти директивы должны быть 10m
.
Правильно ли это рассуждение?
Может ли кто-нибудь пролить свет на факторы, влияющие на то, какие значения устанавливать client_body_buffer_size
, а типичные значения client_body_buffer_size
(для типа веб-приложения, которое я описал)?
В случае необходимости я использую nginx в качестве обратного прокси.
В документация заявляет, что client_body_buffer_size
делает:
Устанавливает размер буфера для чтения тела запроса клиента. В случае, если тело запроса больше, чем буфер, все тело или только его часть записывается во временный файл. По умолчанию размер буфера равен двум страницам памяти. Это 8K на x86, других 32-битных платформах и x86-64. Обычно это 16 КБ на других 64-битных платформах.
Эта память используется только во время загрузки запроса; как только он передается на серверную часть, память снова освобождается. Если запрос больше этого значения, он перейдет во временный файл и появится предупреждение в журнале ошибок.
Это означает, что у вас должно быть достаточно ОЗУ для хранения любых одновременных загрузок, иначе ваш сервер начнет подкачку.
Влияние этого на производительность, вероятно, не так велико, если только вы не сильно ограничены памятью и не получаете одновременно много загрузок.