По умолчанию 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?

atw
источник

Ответы:

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
19

Ответ Пуджи Мане сработал для меня, но мне пришлось поместить переменную client_max_body_size внутри раздела http .

введите описание изображения здесь

Алексей Мялкин
источник
1
Мне нравится,
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