Metody płatności Abuse

Co oznacza błąd 413 i jak go naprawić?

07.07.2024, 23:21

W rzadkich przypadkach, ale zdarza się, że podczas przesyłania dużych plików na stronę internetową, serwer WWW Nginx zwraca błąd - 413 Request Entity Too Large. Błąd pojawia się, gdy próbujesz przesłać na serwer plik, który jest zbyt duży, niż jest to dozwolone na serwerze. W dalszej części rozważymy opis błędu 413 Request Entity Too Large i metody jego naprawy po stronie serwera WWW Nginx.

Co oznacza błąd 413

Błąd 413 lub Request Entity Too Large oznacza "Zbyt duża jednostka żądania" lub, mówiąc prościej, ilość przesyłanych danych jest zbyt duża. Błąd jest zwracany, gdy serwer nie może przetworzyć żądania, ponieważ treść żądania (lub duży plik) jest zbyt duża. Zrzut ekranu błędu pokazano poniżej:

Domyślnie Nginx ma limit rozmiaru treści żądania wynoszący 1 MB. Jeśli żądanie przekroczy ustawioną wartość, pojawi się błąd 413 Request Entity Too Large.

Dlaczego pojawia się błąd

Błąd 413 "Request Entity Too Large" pojawia się, gdy serwer WWW odrzuca żądanie, ponieważ rozmiar treści żądania przekracza maksymalny dozwolony rozmiar ustawiony na serwerze. Oznacza to, że dane wysłane w żądaniu (na przykład podczas przesyłania pliku na serwer) są zbyt duże, aby je przetworzyć.

Rozwiązanie problemu:

  1. Zmieniając ustawienia serwera: można spróbować zwiększyć maksymalny dopuszczalny rozmiar żądania na serwerze. Może to wymagać zmiany plików konfiguracyjnych serwera WWW - Apache, Nginx.
  2. Zmniejszając rozmiar danych: jeśli to możliwe, spróbuj zmniejszyć rozmiar danych wysyłanych w żądaniu. Na przykład, jeśli przesyłasz plik, spróbuj zmniejszyć jego rozmiar.
  3. Korzystanie z innych metod przesyłania danych: zamiast jednego dużego żądania można podzielić dane na kilka mniejszych żądań i wysyłać je fragmentarycznie.
  4. Korzystanie z innych metod przesyłania plików: do przesyłania dużych plików można użyć wyspecjalizowanych usług udostępniania plików lub protokołu FTP.

Jeśli nie kontrolujesz serwera, do którego wysyłasz żądanie, skontaktuj się z administratorem serwera lub pomocą techniczną, aby uzyskać pomoc w rozwiązaniu błędu 413 "Request Entity Too Large".

Jak naprawić błąd

Aby naprawić błąd 413, należy zwiększyć dopuszczalny limit. Możesz zwiększyć rozmiar treści żądania, a w konsekwencji rozmiar przesyłanych plików, używając opcji client_max_body_size. Opcja jest dostępna do użycia w dyrektywach http, server lub location w pliku konfiguracyjnym /etc/nginx/nginx.conf lub w pliku konfiguracyjnym witryny.

Otwórz plik konfiguracyjny nginx. conf za pomocą dowolnego edytora tekstu:

$ sudo nano /etc/nginx/nginx.conf

W sekcji http wpisz linię:

$ client_max_body_size 100M

100 - maksymalny rozmiar pliku w megabajtach, który można przesłać na stronę internetową, w tym przypadku 100 megabajtów. Jeśli masz do dyspozycji kilka witryn i konieczne jest ograniczenie przesyłania do wszystkich witryn jednocześnie, wówczas linia client_max_body_size powinna zostać wprowadzona do sekcji http block.

Jeśli konieczne jest ograniczenie pobierania tylko dla określonej witryny, linia client_max_body_size powinna zostać dodana do bloku serwera pliku konfiguracyjnego witryny, który domyślnie znajduje się w /etc/nginx/sites-available/file_name_with_configuration:

Gdy limit pobierania musi być ustawiony tylko dla określonej sekcji witryny, ciąg client_max_body_size musi zostać dodany do dyrektywy lokalizacji pliku konfiguracyjnego witryny, który domyślnie znajduje się w /etc/nginx/sites-available/file_name_with_configuration:

Po wprowadzeniu zmian w plikach konfiguracyjnych należy je zapisać, zamknąć edytor tekstu i sprawdzić składnię plików konfiguracyjnych pod kątem błędów za pomocą polecenia :

$ sudo nginx -t

Możesz zobaczyć następujące wiersze:

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

Oznacza to, że nie ma żadnych błędów. W przeciwnym razie zobaczysz opis błędu, nazwę pliku, w którym znaleziono błąd i numer linii. Po wprowadzeniu jakichkolwiek zmian w plikach konfiguracyjnych Nginx, należy je ponownie uruchomić za pomocą polecenia:

$ sudo systemctl reload nginx

W tym artykule omówiono błąd w Nginx znany jako 413 Request Entity Too Large, który występuje podczas przesyłania dużych plików na stronę internetową. Oprócz opisu samego błędu, opisano również kroki mające na celu naprawienie błędu poprzez edycję plików konfiguracyjnych Nginx.