GNU/Linux >> Znalost Linux >  >> Linux

Opravit chybu Nginx:Entita požadavku 413 je příliš velká

Když Nginx se používá jako back-end server pro webové aplikace, jako je WordPress , Drupal , atd . (které jsou obvykle založeny na PHP a MySQL Database), mnoho uživatelů narazí na chybu:„413 – Požadavek je příliš velký '.

K této chybě dochází, kdykoli se uživatel pokusí nahrát soubor, který je větší než nakonfigurovaná maximální velikost souboru pro nahrávání. Výchozí limit pro velikost nahrávaného souboru je 1 MB jak je definováno v Nginx konfigurace.

[ Také by se vám mohlo líbit:Jak opravit časový limit brány 504 na serveru Nginx ]

Na tuto chybu obvykle narazí WordPress admin se poprvé pokouší nainstalovat plugin. Pokusil jsem se například nainstalovat ‘Správce stahování Plugin WordPress v mém místním nastavení WP mi dává stejnou chybu:

Změna limitu velikosti nahrávaného souboru v Nginx

Otevřete Nginx konfigurační soubor buď v Vimu nebo libovolný textový editor dle vašeho výběru.

$ sudo vim /etc/nginx/nginx.conf

Přidejte direktivu „client_max_body_size ‘. Tato směrnice definuje maximální velikost těla požadavku klienta. Ve výchozím nastavení je hodnota této direktivy 1 MB . Zvýšení této hodnoty vám umožní nahrát soubor větší velikosti, který je odeslán s požadavkem.

Přidejte následující řádek pod ‚http‘ blokovat:

client_max_body_size 16M;

Můžete dokonce zadat vyšší číslo místo 16 MB je-li potřeba. Nyní uložte a zavřete soubor.

Restartujte Nginx pomocí následujícího příkazu.

$ sudo systemctl restart nginx

Nyní váš Nginx nastavení vám umožní nahrát soubor až 16 MB ve velikosti. Zkusme nainstalovat plugin znovu.

I po konfiguraci velikosti souboru Nginx limit nahrávání souborů PHP stále blokuje nahrávání. Podívejme se, jak to změnit.

Změnit limit velikosti nahrávání PHP

Nginx se používá ve spojení s webovými aplikacemi založenými na PHP a výše uvedený problém může nastat kvůli omezení velikosti nahrávaných souborů PHP.

Otevřete soubor ‘php.ini ‘, který se nachází v konfiguračním adresáři PHP.

$ sudo vim /etc/php/7.4/fpm/php.ini
OR
$ sudo vim /etc/php.ini

Přejděte na proměnné upload_file_maxsize , tj. maximální velikost souboru, který je povoleno nahrát, a post_maxsize , tj. maximální velikost požadavku na příspěvek.

Protože je soubor nahrán jako součást požadavku na odeslání, post_maxsize by měla být vždy větší než maximální velikost_souboru pro nahrání .

Změňte hodnoty podle potřeby.

upload_max_filesize = 16M
post_max_size = 20M

Uložte a ukončete soubor.

Restartujte PHP a také Nginx , aby se nová konfigurace provedla:

$ sudo systemctl restart php7.4-fpm
$ sudo systemctl restart nginx

Měli byste nahradit php7.4 ve výše uvedeném příkazu s jakoukoli verzí PHP, nebo dokonce jen „php “ pokud je to název služby PHP ve vašem počítači.

Nově zadaná velikost souboru je nyní povolena pro nahrávání souborů ve webové aplikaci a plugin úspěšně pokračuje v instalaci.

Závěr

Viděli jsme, jak se vypořádat s problémem, že entita požadavku je příliš velká ve webové aplikaci založené na Nginx. Všimněte si, že nejen PHP, ale pokud se s Nginx používají jiné CGI, problém může nastat; v takovém případě mohou uživatelé zvýšit limit v konfiguračním souboru pro konkrétní CGI.

Děkujeme za přečtení a dejte nám vědět své myšlenky v komentářích níže!


Linux
  1. Jak opravit „CHYBA:VAROVÁNÍ:nelze získat zvukový kodek souboru pomocí ffprobe“? [vyřešeno]

  2. Oprava závažné chyby openssl err.h – Žádný takový soubor nebo adresář [OpenCA]

  3. Upstream odeslal příliš velkou hlavičku při čtení hlavičky odpovědi z upstreamu – chyba NGINX

  1. Chyba kompilace Openssl

  2. grep velký seznam proti velkému souboru

  3. Požadavek na spuštění služby se opakoval příliš rychle a odmítal spustit limit

  1. Oprava Otevřít dialogové okno Uložit soubor je příliš velké v i3 Windows Manager

  2. Jak opravit chybu – ModSecurity:Přístup odepřen s kódem 44 [Apache]

  3. Chyba v souboru Sudoers? Zde je návod, jak to můžete opravit.