У рідкісних випадках, але буває, що під час завантаження великих файлів на веб-сайт виникає помилка, яку повертає веб-сервер Nginx - 413 Request Entity Too Large. Помилка з'являється під час спроби завантажити на сервер занадто великий файл, ніж це дозволено на сервері. Далі розглянемо опис помилки 413 Request Entity Too Large, а також методи її виправлення на стороні веб-сервера Nginx.
Помилка 413 або Request Entity Too Large розшифровується як "об'єкт запиту занадто великий" або простими словами обсяг переданих даних занадто великий. Помилка повертається в разі, якщо сервер не може обробити запит через занадто великий розмір тіла запиту (або великого файлу). Знімок екрана з помилкою зображено нижче:
За замовчуванням у Nginx встановлено ліміт на розмір тіла запиту, який дорівнює 1 МБ. Якщо запит перевищує встановлене значення, ви побачите помилку 413 Request Entity Too Large.
Помилка 413 "Request Entity Too Large" виникає, коли веб-сервер відхиляє запит через те, що розмір тіла запиту перевищує максимально допустимий розмір, встановлений на сервері. Це означає, що дані, відправлені в запиті (наприклад, під час завантаження файлу на сервер), занадто великі для обробки.
Вирішити проблему:
Якщо ви не керуєте сервером, на який надсилаєте запит, зверніться до адміністратора сервера або технічної підтримки для допомоги у вирішенні проблеми з помилкою 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.