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