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