Spôsoby platby Abuse

Čo znamená chyba 413 a ako ju opraviť

07.07.2024, 23:21

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.

Čo znamená chyba 413

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.

Prečo sa chyba zobrazuje

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:

  1. Zmenou nastavení servera: Môžete sa pokúsiť zvýšiť maximálnu povolenú veľkosť požiadavky na serveri. To si môže vyžadovať zmenu konfiguračných súborov webového servera - Apache, Nginx.
  2. Zmenšením veľkosti údajov: Ak je to možné, skúste zmenšiť veľkosť údajov odosielaných v požiadavke. Ak napríklad odosielate súbor, skúste zmenšiť jeho veľkosť.
  3. Použitím iných metód prenosu údajov: namiesto jednej veľkej požiadavky môžete údaje rozdeliť do niekoľkých menších požiadaviek a posielať ich po častiach.
  4. Použitie iných metód prenosu súborov: Na prenos veľkých súborov môžete použiť špecializované služby zdieľania súborov alebo FTP.

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).

Ako opraviť

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.