По умолчанию nginx client_max_body_size


94

Я получаю ошибку nginx:

413 Request Entity Too Large

Мне удалось обновить мое client_max_body_sizeв разделе server моего файла nginx.conf до 20M, и это устранило проблему. Однако что такое nginx по умолчанию client_max_body_size?

Ответы:


137

Значение по умолчанию для client_max_body_sizeдирективы - 1 МиБ .

Он может быть установлен в http, serverи locationконтексте - как в большинстве случаев , эта директива в вложенном блоке имеет приоритет над той же директивой в блоках предков .

Выдержка из документации ngx_http_core_module :

Syntax:   client_max_body_size size;
Default:  client_max_body_size 1m;
Context:  http, server, location

Устанавливает максимально допустимый размер тела клиентского запроса, указанный в поле заголовка запроса Content-Length. Если размер в запросе превышает настроенное значение, клиенту возвращается ошибка 413 (Request Entity Too Large). Имейте в виду, что браузеры не могут правильно отображать эту ошибку. Установка размера на 0 отключает проверку размера тела клиентского запроса.

Не забудьте перезагрузить конфигурацию с помощью nginx -s reloadили service nginx reloadкоманд, перед которыми стоит sudo(если есть).


2
Приходите поздно, чтобы отметить, что вы должны использовать nginx -tдля тестирования вашей конфигурации перед запуском, nginx -s reloadчтобы применить изменения конфигурации. Он не может гарантировать правильную конфигурацию, но обнаружит синтаксические ошибки или недопустимые значения.
kungphu 05

2
Да, но в любом случае nginx -s reloadне будет применять синтаксически неверную конфигурацию, но сообщит об ошибке.
ruvim 06

Какое максимальное значение поддерживает Nginx для этой директивы? В документации ничего нет. Apache поддерживает макс .
Дэн Даскалеску

@DanDascalescu, максимальное значение зависит от off_tразмера шрифта (см. ngx_http_core_module.h). В случае 64-битного исполняемого файла off_tразмер составляет 64 бита , а максимальное значение должно быть 2 ^ 63 байта.
ruvim


14

Вы можете увеличить размер тела в файле конфигурации nginx как

sudo nano /etc/nginx/nginx.conf

client_max_body_size 100M;

Перезапустите nginx, чтобы изменения вступили в силу.

sudo service nginx перезапуск


10
Почему 100M? Почему не 100G? Ваш ответ улучшился бы, если бы вы добавили обоснование.
Hassan

10
Ага, лучше бы 42М.
Evgeni Nabokov

2
установите 0 для безлимитного
morteza moradi
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.