Metody płatności Abuse

Nagłówek żądania Ошибка lub zbyt duży plik cookie Nginx

01.02.2024, 23:37

Błąd"zbyt duży nagłówek żądania lub plik cookie" w Nginx występuje, gdy rozmiar nagłówków żądań lub plików cookie przekracza maksymalny dozwolony rozmiar, który jest ustawiony w konfiguracji serwera. W tym artykule szczegółowo przeanalizujemy, dlaczego tak się dzieje.

Co oznacza błąd zbyt dużego nagłówka żądania lub pliku cookie w Nginx?

Błąd pojawia się, gdy rozmiar nagłówków żądań HTTP/HTTPS przekracza dozwolony limit. Na przykład przeglądarka wysyła zbyt wiele plików cookie lub żądanie wysłane do serwera WWW jest zbyt duże.

Żądanie jest zwykle podzielone na dwie części: nagłówki - gdzie znajdują się ogólne informacje i metadane, oraz treść żądania. Ciało żądania, podobnie jak nagłówek, może mieć różne rozmiary - zarówno małe, jak i duże, a jego rozmiar zwykle nie powoduje żadnych problemów. Jeśli jednak ustawienia serwera WWW mają parametr ograniczający długość nagłówka żądania, prawdopodobnie pojawi się ten błąd.

Jak to naprawić?

Istnieje kilka sposobów na rozwiązanie tego problemu

  1. Zwiększenie maksymalnego rozmiaru nagłówków i plików cookie w konfiguracji Nginx. Aby to zrobić, dodaj następujące linie do pliku konfiguracyjnego nginx.conf.
  2. Wyczyszczenie plików cookie przeglądarki. Jeśli problem występuje tylko na jednym komputerze lub urządzeniu, wyczyszczenie plików cookie przeglądarki może pomóc.
  3. Użyj innej przeglądarki lub urządzenia. Jeśli problem występuje tylko na jednej przeglądarce lub urządzeniu, spróbuj użyć innej przeglądarki lub urządzenia.
  4. Użyj żądania POST zamiast GET. Jeśli problem występuje podczas wysyłania żądania GET z dużymi parametrami, można spróbować użyć żądania POST zamiast GET.
  5. Podziel żądanie na kilka mniejszych żądań. Jeśli nie można zmienić konfiguracji serwera, można spróbować podzielić żądanie na kilka mniejszych żądań, wysyłając je sekwencyjnie.

Aby naprawić ten błąd (jeśli jesteś administratorem serwera WWW Nginx), powinieneś zwiększyć maksymalny rozmiar nagłówka, zmieniając parametr large_client_header_buffers. Jeśli jesteś zwykłym użytkownikiem strony internetowej, na której wystąpił ten błąd, powinieneś poczekać, aż administrator zasobu poprawi błąd.

Korekta ze strony serwera WWW Nginx

Należy dostosować parametr large_client_header_buffers, który przyjmuje 2 liczby, na przykład 4 i 8 (które są ustawione domyślnie). Pierwsza liczba to wartość ustawiająca maksymalną liczbę buforów, a druga to rozmiar bufora, do którego odczytywany jest nagłówek żądania. Drugi parametr jest ustawiony w kilobajtach.

Linia ta jest dodawana do sekcji http pliku konfiguracyjnego Nginx lub do sekcji serwera dla konkretnej witryny. Pliki konfiguracyjne witryny Nginx są zwykle przechowywane w /etc/nginx/conf.d/ lub /etc/nginx/sites-available/ (w zależności od tego, jak Nginx został zainstalowany - przy użyciu standardowych repozytoriów systemu operacyjnego lub przy użyciu repozytorium Nginx).

Aby dostosować wartość, można ustawić liczby 8 i 64 odpowiednie do przechowywania dużych nagłówków. Parametr będzie wyglądał następująco:

large_client_header_buffers 8 64k;

Po wprowadzeniu zmian w pliku konfiguracyjnym, należy ponownie uruchomić Nginx za pomocą polecenia:

sudo systemctl reload nginx

Oto metody rozwiązania tego problemu.