Nginx'te"
istek başlığı veya çerezçok büyük
" hatası, istek başlıklarının veya çerezlerin boyutu sunucu yapılandırmasında ayarlanan izin verilen maksimum boyutu aştığında ortaya çıkar. Bu makalede bunun neden olduğunu ayrıntılı olarak analiz edeceğiz.
Hata, HTTP/HTTPS istek başlıklarının boyutu izin verilen sınırı aştığında ortaya çıkar. Örneğin, tarayıcı çok fazla çerez gönderiyor veya web sunucusuna gönderilen istek çok büyük.
İstek genellikle iki bölüme ayrılır: başlıklar - genel bilgilerin ve meta verilerin bulunduğu yer ve istek gövdesi. Başlığın yanı sıra istek gövdesi de farklı boyutlarda olabilir - hem küçük hem de büyük ve boyutu genellikle herhangi bir soruna neden olmaz. Ancak, web sunucusu ayarlarında istek başlığının uzunluğunu sınırlayan bir parametre varsa, bu hatayı almanız olasıdır.
Sorunu çözmenin birkaç yolu vardır
nginx.conf
yapılandırma dosyasına aşağıdaki satırları ekleyin.GET
yerine POST
isteği kullanın. Sorun büyük parametreler içeren bir GET
isteği gönderirken ortaya çıkıyorsa, GET
yerine POST
isteği kullanmayı deneyebilirsiniz.Bu hatayı düzeltmek için (Nginx web sunucusunun yöneticisiyseniz) large_client_header_buffers
parametresini değiştirerek maksimum başlık boyutunu artırmalısınız. Bu hatanın meydana geldiği web sitesinin sıradan bir kullanıcısıysanız, kaynağın yöneticisi hatayı düzeltene kadar beklemelisiniz.
Large_client_header_buffers
parametresini ayarlamanız gerekir, bu parametre 2 sayı alır, örneğin 4 ve 8 (varsayılan olarak ayarlanmıştır). İlk sayı maksimum tampon sayısını ayarlayan değerdir ve ikinci sayı istek başlığının okunduğu tamponun boyutudur. İkinci parametre kilobayt olarak ayarlanır.
Bu satır, Nginx yapılandırma dosyasının http bölümüne veya belirli bir site için sunucu bölümüne eklenir. Nginx web sitesi yapılandırma dosyaları genellikle /etc/nginx/conf.d/
veya /etc/nginx/sites-available/
içinde saklanır (Nginx'in nasıl kurulduğuna bağlı olarak - standart işletim sistemi depoları veya Nginx deposu kullanılarak).
Değeri ayarlamak için büyük başlıkları depolamaya uygun 8 ve 64 sayılarını ayarlayabilirsiniz. Parametre aşağıdaki gibi görünecektir:
large_client_header_buffers 8 64k;
Yapılandırma dosyasında değişiklik yapıldıktan sonra, Nginx komut kullanılarak yeniden başlatılmalıdır:
sudo systemctl reload nginx
Bu sorunu çözmek için yöntemler şunlardır.