Způsoby platby Abuse

Co znamená chyba 413 a jak ji opravit

07.07.2024, 23:21

Ve výjimečných případech se ale stává, že při nahrávání velkých souborů na webový server vrátí webový server Nginx chybu - 413 Request Entity Too Large. Chyba se zobrazí, když se pokusíte na server nahrát soubor, který je příliš velký, než je na serveru povoleno. Dále se budeme zabývat popisem chyby 413 Request Entity Too Large a způsoby jejího odstranění na straně webového serveru Nginx.

Co znamená chyba 413

Chyba 413 neboli Request Entity Too Large znamená "Request Entity Too Large", zjednodušeně řečeno je množství přenášených dat příliš velké. Chyba je vrácena, když server nemůže zpracovat požadavek, protože tělo požadavku (nebo velký soubor) je příliš velké. Snímek obrazovky s chybou je uveden níže:

Ve výchozím nastavení má systém Nginx limit velikosti těla požadavku 1 MB. Pokud požadavek překročí nastavenou hodnotu, zobrazí se chyba 413 Příliš velká entita požadavku.

Proč se chyba zobrazuje

Chyba 413 "Request Entity Too Large" se objeví, když webový server odmítne požadavek, protože velikost těla požadavku překročí maximální povolenou velikost nastavenou na serveru. To znamená, že data odeslaná v požadavku (například při nahrávání souboru na server) jsou příliš velká na to, aby mohla být zpracována.

Řešení problému:

  1. Změnou nastavení serveru: Můžete zkusit zvýšit maximální povolenou velikost požadavku na serveru. To může vyžadovat změnu konfiguračních souborů webového serveru - Apache, Nginx.
  2. Zmenšením velikosti dat: Pokud je to možné, zkuste zmenšit velikost dat zasílaných v požadavku. Pokud například odesíláte soubor, zkuste zmenšit jeho velikost.
  3. Použitím jiných metod přenosu dat: místo jednoho velkého požadavku můžete data rozdělit do několika menších požadavků a odesílat je po částech.
  4. Použití jiných metod přenosu souborů: K přenosu velkých souborů můžete použít specializované služby pro sdílení souborů nebo FTP.

Pokud nemáte kontrolu nad serverem, na který požadavek odesíláte, obraťte se na správce serveru nebo technickou podporu, aby vám pomohli vyřešit chybu 413 "Request Entity Too Large".

Jak opravit

Chcete-li opravit chybu 413, měli byste zvýšit povolený limit. Velikost těla požadavku a následně i velikost odesílaných souborů můžete zvýšit pomocí funkce client_max_body_size. Tuto možnost lze použít v direktivách http, server nebo location v konfiguračním souboru /etc/nginx/nginx.conf nebo v konfiguračním souboru webové stránky.

Konfigurační soubor nginx.conf otevřete pomocí libovolného textového editoru:

$ sudo nano /etc/nginx/nginx.conf

Do části http napište řádek:

$ client_max_body_size 100M

100 - maximální velikost souboru v megabajtech, který lze na webovou stránku nahrát, v tomto případě 100 megabajtů. Pokud máte k dispozici více webových stránek a je nutné omezit nahrávání na všechny webové stránky najednou, pak je třeba do sekce http block zadat řádek client_max_body_size.

Pokud je nutné omezit stahování pouze pro určitý web, pak by měl být řádek client_max_body_size přidán do bloku serveru konfiguračního souboru webu, který je ve výchozím nastavení umístěn v souboru /etc/nginx/sites-available/file_name_with_configuration:

Pokud je třeba nastavit limit stahování pouze pro určitou sekci webu, je třeba do směrnice umístění konfiguračního souboru webu, který je ve výchozím nastavení umístěn v souboru /etc/nginx/sites-available/file_name_with_configuration, přidat řádek client_max_body_size:

Po provedení změn v konfiguračních souborech je uložte, zavřete textový editor a zkontrolujte syntaxi konfiguračních souborů na přítomnost chyb pomocí příkazu:

$ sudo nginx -t

Mohou se zobrazit následující řádky:

nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

To znamená, že v nich nejsou žádné chyby. V opačném případě se zobrazí popis chyby, název souboru, ve kterém byla chyba nalezena, a číslo řádku. Po provedení jakýchkoli změn v konfiguračních souborech Nginx byste je měli restartovat pomocí příkazu:

$ sudo systemctl reload nginx

Tento článek se zabýval chybou v systému Nginx známou jako 413 Request Entity Too Large, která se vyskytuje při nahrávání velkých souborů na webové stránky. Kromě popisu samotné chyby byly popsány také kroky k jejímu odstranění úpravou konfiguračních souborů Nginx.