Начини на плащане 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 (твърде голям обект на заявката) означава "Request Entity Too Large" (твърде голям обект на заявката) или с прости думи - обемът на прехвърляните данни е твърде голям. Грешката се връща, когато сървърът не може да обработи заявката, тъй като тялото на заявката (или големият файл) е твърде голямо. Екранна снимка на грешката е показана по-долу:

По подразбиране Nginx има ограничение за размера на тялото на заявката от 1 MB. Ако заявката надхвърли зададената стойност, ще се появи грешка 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 block.

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

Когато ограничението за изтегляне трябва да се зададе само за определен раздел на сайта, редът client_max_body_size трябва да се добави към директивата за местоположение на файла за конфигурация на сайта, който по подразбиране се намира в /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.