Vo výnimočných prípadoch sa stáva, že pri nahrávaní veľkých súborov na webovú lokalitu webový server Nginx vráti chybu - 413 Request Entity Too Large. Chyba sa zobrazí, keď sa pokúsite na server nahrať súbor, ktorý je príliš veľký, než je na serveri povolené. Ďalej sa budeme zaoberať popisom chyby 413 Request Entity Too Large (Príliš veľká entita požiadavky) a spôsobmi jej odstránenia na strane webového servera Nginx.
Chyba 413 alebo Request Entity Too Large znamená "Request Entity Too Large" (príliš veľká entita požiadavky) alebo zjednodušene povedané, množstvo prenášaných údajov je príliš veľké. Táto chyba sa vracia, keď server nemôže spracovať požiadavku, pretože telo požiadavky (alebo veľký súbor) je príliš veľké. Snímka obrazovky s chybou je uvedená nižšie:
V predvolenom nastavení má systém Nginx limit veľkosti tela požiadavky 1 MB. Ak požiadavka prekročí nastavenú hodnotu, zobrazí sa chyba 413 Príliš veľká entita požiadavky.
Chyba 413 "Request Entity Too Large" (Príliš veľká entita požiadavky) sa vyskytuje vtedy, keď webový server odmietne požiadavku, pretože veľkosť tela požiadavky prekračuje maximálnu povolenú veľkosť nastavenú na serveri. To znamená, že údaje odoslané v požiadavke (napríklad pri odosielaní súboru na server) sú príliš veľké na spracovanie.
Riešenie problému:
Ak nemáte kontrolu nad serverom, na ktorý posielate požiadavku, obráťte sa na správcu servera alebo technickú podporu, aby vám pomohli vyriešiť chybu 413 "Request Entity Too Large" (Príliš veľká entita požiadavky).
Ak chcete opraviť chybu 413, mali by ste zvýšiť povolený limit. Veľkosť tela požiadavky a následne aj veľkosť odosielaných súborov môžete zvýšiť pomocou funkcie client_max_body_size
. Túto možnosť je možné použiť v smerniciach http, server alebo location v konfiguračnom súbore /etc/nginx/nginx.conf
alebo v konfiguračnom súbore webovej stránky.
Otvorte konfiguračný súbor nginx.conf
pomocou ľubovoľného textového editora:
$ sudo nano /etc/nginx/nginx.conf
Do časti http zadajte riadok:
$ client_max_body_size 100M
100 - maximálna veľkosť súboru v megabajtoch, ktorý možno nahrať na webovú lokalitu, v tomto prípade 100 megabajtov. Ak máte k dispozícii viacero webových stránok a je potrebné obmedziť nahrávanie na všetky webové stránky naraz, potom je potrebné do sekcie bloku http zadať riadok client_max_body_size
.
Ak je potrebné obmedziť sťahovanie len pre konkrétnu stránku, potom by sa mal riadok client_max_body_size
pridať do bloku servera konfiguračného súboru stránky, ktorý sa štandardne nachádza v súbore /etc/nginx/sites-available/file_name_with_configuration
:
Ak je potrebné nastaviť limit sťahovania len pre konkrétnu sekciu na lokalite, do smernice umiestnenia
konfiguračného súboru lokality, ktorý sa štandardne nachádza v súbore /etc/nginx/sites-available/file_name_with_configuration
, sa musí pridať riadok client_max_body_size
:
Po vykonaní zmien v konfiguračných súboroch ich uložte, zatvorte textový editor a skontrolujte syntax konfiguračných súborov na prítomnosť chýb pomocou príkazu:
$ sudo nginx -t
Môžete vidieť nasledujúce riadky:
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
To znamená, že sa nevyskytli žiadne chyby. V opačnom prípade sa zobrazí opis chyby, názov súboru, v ktorom bola chyba nájdená, a číslo riadku. Po vykonaní akýchkoľvek zmien v konfiguračných súboroch Nginx by ste ich mali reštartovať pomocou príkazu:
$ sudo systemctl reload nginx
Tento článok sa zaoberal chybou v systéme Nginx známou ako 413 Request Entity Too Large (Príliš veľká entita požiadavky), ktorá sa vyskytuje pri nahrávaní veľkých súborov na webovú lokalitu. Okrem opisu samotnej chyby boli opísané aj kroky na jej odstránenie úpravou konfiguračných súborov Nginx.