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.
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.
Istnieje kilka sposobów na rozwiązanie tego problemu
nginx.conf
.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
.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.
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.