За замовчуванням nginx client_max_body_size


94

Я отримую помилку nginx:

413 Request Entity Too Large

Я зміг оновити свій client_max_body_sizeсерверний розділ мого файлу 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 (Запит об’єкта занадто великий). Зверніть увагу, що браузери не можуть правильно відобразити цю помилку. Встановлення розміру в 0 вимикає перевірку розміру тіла запиту клієнта.

Не забудьте перезавантажити конфігурацію з допомогою nginx -s reloadабо service nginx reloadкоманд Попереджання з sudo(якщо такі є).


2
Пізніше зауважимо, що вам слід скористатися nginx -tтестом своєї конфігурації перед запуском, nginx -s reloadщоб застосувати зміни конфігурації. Це не може гарантувати, що ваша конфігурація правильна, але вона виявить синтаксичні помилки або недійсні значення.
kungphu

2
Так, але в будь-якому випадку nginx -s reloadне застосовуватиметься синтаксично неправильна конфігурація, але буде повідомляти про помилку.
ruvim

Яке максимальне значення підтримує Nginx для цієї директиви? У документах немає нічого. Apache підтримує макс . 2 Гб .
Дан Даскалеску,

@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
Чому 100 млн? Чому не 100G? Ваша відповідь покращиться, якщо ви додасте обґрунтування.
Хасан Байг,

10
Так, 42М було б краще.
Євгеній Набоков

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