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.
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.
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:
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".
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.