Помилка 413 request entity too large nginx

77

Іноді при завантаженні великих файлів на який-небудь веб-сайт може виникнути помилка, яку повертає веб-сервер nginx – 413 request entity too large. Ця помилка з’являється, при спробі завантажити на сервер занадто великий файл ніж це дозволено на сервері.

У цій невеликій статті буде розглянуто опис помилки 413 request entity too large а також методи її виправлення на стороні веб-сервера nginx.

Що означає помилка 413 request entity too large

Помилка 413 request entity too large дослівно розшифровується як об’єкт запиту занадто великий або простими словами обсяг переданих даних занадто великий. Дана помилка повертається в разі, якщо сервер не може обробити запит через занадто великого розміру тіла запиту (або великого файлу). Знімок екрана з помилкою зображений нижче:

За замовчуванням в nginx встановлений ліміт на розмір тіла запиту який дорівнює 1 мб. Якщо запит перевищує встановлене значення, ви побачите помилку 413 request entity too large.

Як виправити помилку 413 request entity too large

Для того щоб виправити цю помилку необхідно збільшити допустимий ліміт. Щоб збільшити розмір тіла запиту і відповідно, завантажуваних файлів, необхідно використовувати параметр client_max_body_size . Цю опцію можна використовувати в директивах http , server або location в конфігураційному файлі /etc/nginx/nginx.conf або в конфігураційному файлі веб-сайту.

Для цього необхідно відкрити конфігураційний файл nginx.conf за допомогою будь-якого текстового редактора (наприклад nano):

Далі впишіть такий рядок в секцію http:

Тут 100 – це максимальний розмір файлу в мегабайтах який можна завантажити на веб-сайт, в даному випадку – 100 мегабайт. Якщо в розпорядженні є кілька веб-сайтів (серверні блоки в термінології nginx, вони ж віртуальні хости в розумінні іншого веб-сервера – apache) і необхідно щоб обмеження на завантаження діяло на всі сайти відразу, то рядок client_max_body_size необхідно вписати в розділ блоку http. як було показано вище.

Якщо обмеження на завантаження необхідно виставити тільки для конкретного сайту, то рядок client_max_body_size необхідно додати в блок server конфігураційного файлу сайту, який за замовчуванням перебувати в /etc/nginx/sites-available/имя_файла_с_конфигурацией:

Якщо обмеження на завантаження необхідно виставити тільки для конкретного розділу на сайті, рядок client_max_body_size необхідно вписати в директиву location конфігураційного файлу сайту, за замовчуванням перебувати в /etc/nginx/sites-available/имя_файла_с_конфигурацией :

Після внесення змін в конфігураційні файли необхідно зберегти зміни, закрити текстовий редактор і перевірити синтаксис конфігураційних файлів на наявність помилок за допомогою команди:

Sudo nginx -t

Якщо у виводі команди будуть відображені наступні рядки:

Nginx: the configuration file /etc/nginx/nginx.conf syntax is oknginx: configuration file /etc/nginx/nginx.conf test is successful

Це означає що помилок немає. В іншому випадку буде виведено опис помилки, ім’я файлу в якому знайдена помилка і номер рядка. Після внесення будь-яких змін в конфігураційні файли nginx їх необхідно перезапустити за допомогою команди:

Sudo systemctl reload nginx

Висновки

У даній короткій статті була розглянута помилка в nginx під назвою 413 request entity too large яка виникає при завантаженні великих файлів на веб-сайт. Крім опису самої помилки також було описано кроки щодо усунення помилки шляхом редагування конфігураційних файлів nginx.

стаття поширюється під ліцензією creative commons sharealike 4.0 при копіюванні матеріалу посилання на джерело обов’язкове.

( 4 оцінок, середнє: 5,00 з 5)