Fizetési módok Abuse

Mit jelent a 413-as hiba, és hogyan javítsa ki azt

07.07.2024, 23:21

Ritkán, de előfordul, hogy nagyméretű fájlok feltöltése közben az Nginx webszerver hibát küld vissza - 413 Request Entity Too Large. Ez a hiba akkor jelentkezik, amikor olyan fájlt próbál feltölteni, amely túl nagy, mint amekkorát a szerver megenged. A továbbiakban a 413 Request Entity Too Large hiba leírását és a hiba Nginx webszerver oldalán történő javításának módszereit fogjuk megvizsgálni.

Mit jelent a 413-as hiba

A 413-as hiba vagy Request Entity Too Large a "Request Entity Too Large", azaz "Túl nagy kérési egység" rövidítése, vagy egyszerűbben fogalmazva a továbbított adatmennyiség túl nagy. A hiba akkor érkezik vissza, ha a szerver nem tud feldolgozni egy kérést, mert a kérés teste (vagy a nagy fájl) túl nagy. A hiba képernyőképét az alábbiakban mutatjuk be:

Az Nginx alapértelmezés szerint a kérés testének mérete 1 MB-ban van korlátozva. Ha a kérés túllépi a beállított értéket, akkor a 413-as hiba jelenik meg: Request Entity Too Large.

Miért jelenik meg a hiba

A 413 "Request Entity Too Large" hiba akkor jelentkezik, amikor a webkiszolgáló elutasít egy kérést, mert a kérés testének mérete meghaladja a kiszolgálón beállított maximális megengedett méretet. Ez azt jelenti, hogy a kérelemben elküldött adatok (például egy fájlnak a kiszolgálóra történő feltöltésekor) túl nagyok a feldolgozáshoz.

A probléma megoldása:

  1. A kiszolgáló beállításainak módosításával: Megpróbálhatja megnövelni a kiszolgálón a maximálisan megengedett kérésméretet. Ehhez szükség lehet a webszerver konfigurációs fájljainak módosítására - Apache, Nginx.
  2. Az adatok méretének csökkentésével: Ha lehetséges, próbálja meg csökkenteni a kérésben küldött adatok méretét. Ha például egy fájlt tölt fel, próbálja meg csökkenteni a méretét.
  3. Más adatátviteli módszerekkel: egyetlen nagy kérés helyett feloszthatja az adatokat több kisebb kérésre, és darabonként küldheti el őket.
  4. Más fájlátviteli módszerek használata: Nagyméretű fájlok átviteléhez használhat speciális fájlmegosztó szolgáltatásokat vagy FTP-t.

Ha nem Ön irányítja azt a kiszolgálót, amelyre a kérést küldi, forduljon a kiszolgáló rendszergazdájához vagy a műszaki támogatáshoz, hogy segítséget kapjon a 413 "Request Entity Too Large" (Túl nagy kérési egység) hiba elhárításában.

Hogyan javítható

A 413-as hiba kijavításához növelje meg a megengedett határt. A client_max_body_size használatával növelheti a kérés testének méretét, és ennek következtében a feltöltött fájlok méretét. Az opció az /etc/nginx/nginx.conf konfigurációs fájl http, server vagy location direktíváiban vagy a weboldal konfigurációs fájljában használható.

Nyissa meg az nginx.conf konfigurációs fájlt bármilyen szövegszerkesztővel:

$ sudo nano /etc/nginx/nginx.conf

Írjon be egy sort a http szakaszba:

$ client_max_body_size 100M

100 - a weboldalra feltölthető fájl maximális mérete megabájtban, ebben az esetben 100 megabájt. Ha több weboldal áll a rendelkezésére, és egyszerre az összes weboldalra történő feltöltést korlátozni kell, akkor a http blokk szakaszba kell beírni a client_max_body_size sort.

Ha a letöltést csak egy adott webhelyre kell korlátozni, akkor a client_max_body_size sort a webhely konfigurációs fájljának szerver blokkjába kell beírni, amely alapértelmezés szerint az /etc/nginx/sites-available/file_name_with_configuration fájlban található:

Ha a letöltési korlátot csak egy webhely egy adott szakaszára kell beállítani, akkor a client_max_body_size sort hozzá kell adni a webhely konfigurációs fájl location utasításához, amely alapértelmezés szerint az /etc/nginx/sites-available/file_name_with_configuration állományban található:

Miután elvégezte a módosításokat a konfigurációs fájlokban, mentse el azokat, zárja be a szövegszerkesztőt, és ellenőrizze a konfigurációs fájlok szintaxisát hibák szempontjából a parancs segítségével:

$ sudo nginx -t

A következő sorokat láthatja:

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

Ez azt jelenti, hogy nincsenek hibák. Ellenkező esetben a hiba leírását, a hibát tartalmazó fájl nevét és a sorszámot látja. Az Nginx konfigurációs fájljainak módosítása után újra kell indítani azokat a parancs segítségével:

$ sudo systemctl reload nginx

Ez a cikk az Nginx 413 Request Entity Too Large nevű hibájával foglalkozott, amely nagyméretű fájlok weboldalra történő feltöltésekor jelentkezik. Magának a hibának a leírása mellett a hiba Nginx konfigurációs fájlok szerkesztésével történő kijavításának lépéseit is ismertette.