Способи оплати Abuse

Що означає помилка 413 і як її виправити

07.07.2024, 23:21

У рідкісних випадках, але буває, що під час завантаження великих файлів на веб-сайт виникає помилка, яку повертає веб-сервер Nginx - 413 Request Entity Too Large. Помилка з'являється під час спроби завантажити на сервер занадто великий файл, ніж це дозволено на сервері. Далі розглянемо опис помилки 413 Request Entity Too Large, а також методи її виправлення на стороні веб-сервера Nginx.

Що означає помилка 413

Помилка 413 або Request Entity Too Large розшифровується як "об'єкт запиту занадто великий" або простими словами обсяг переданих даних занадто великий. Помилка повертається в разі, якщо сервер не може обробити запит через занадто великий розмір тіла запиту (або великого файлу). Знімок екрана з помилкою зображено нижче:

За замовчуванням у Nginx встановлено ліміт на розмір тіла запиту, який дорівнює 1 МБ. Якщо запит перевищує встановлене значення, ви побачите помилку 413 Request Entity Too Large.

Чому з'являється помилка

Помилка 413 "Request Entity Too Large" виникає, коли веб-сервер відхиляє запит через те, що розмір тіла запиту перевищує максимально допустимий розмір, встановлений на сервері. Це означає, що дані, відправлені в запиті (наприклад, під час завантаження файлу на сервер), занадто великі для обробки.

Вирішити проблему:

  1. Змінивши налаштування сервера: ви можете спробувати збільшити максимально допустимий розмір запиту на сервері. Це може вимагати зміни конфігураційних файлів веб-сервера - Apache, Nginx.
  2. Скоротивши розмір даних: якщо можливо, спробуйте скоротити розмір даних, що надсилаються в запиті. Наприклад, якщо ви завантажуєте файл, спробуйте зменшити його розмір.
  3. Використавши інші методи передачі даних: замість одного великого запиту можна розділити дані на кілька дрібніших і відправляти їх частинами.
  4. Використавши інші методи передачі файлів: для передачі великих файлів можна скористатися спеціалізованими сервісами для обміну файлами або FTP.

Якщо ви не керуєте сервером, на який надсилаєте запит, зверніться до адміністратора сервера або технічної підтримки для допомоги у вирішенні проблеми з помилкою 413 "Request Entity Too Large".

Як виправити

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

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

$ sudo nano /etc/nginx/nginx.conf

Вписуємо рядок у секцію http:

$ client_max_body_size 100M

100 - максимальний розмір файлу в мегабайтах, який можна завантажити на веб-сайт, у даному випадку - 100 мегабайт. Якщо в розпорядженні є кілька веб-сайтів і необхідно обмежити завантаження на всі сайти одразу, то рядок client_max_body_size необхідно вписуємо в розділ блоку http.

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

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

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

$ sudo nginx -t

Ви можете побачити такі рядки:

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

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

$ sudo systemctl reload nginx

У цій статті розглянуто помилку в Nginx, відому як 413 Request Entity Too Large, що виникає під час завантаження великих файлів на веб-сайт. Крім опису самої помилки також було описано кроки щодо усунення помилки шляхом редагування конфігураційних файлів Nginx.