Bu 400 hatası, istek satırı veya tek bir HTTP header alanının NGINX buffer kapasitesini aşmasıyla oluşur. Çoğu vakada gereksiz büyüyen oturum cookie’si, JWT, SSO verisi veya reverse proxy tarafından eklenen header zinciri bulunur.
2026/07/17 04:02:19 [info] 2381#2381: *1223 client sent too large header while reading client request headers
400 Bad Request
Request Header Or Cookie Too Large
NGINX, istek başlıklarını önce normal buffer’a, büyükse large_client_header_buffers alanına okur. Tek bir header veya request line buffer boyutunu aşarsa 400 ya da bazı durumlarda 414 döner.
Tarayıcı cookie’lerini silmek geçici olarak düzeltirse sorun çoğunlukla uygulamanın aynı domain altında aşırı sayıda veya büyük cookie üretmesidir. Buffer artırmak semptomu azaltabilir ancak cookie tasarımı düzeltilmelidir.
JWT içine fazla kullanıcı yetkisi, profil ve oturum verisi koymak Authorization header’ını büyütür. SSO ve OAuth sistemlerinde birden çok token aynı isteğe eklenebilir.
Reverse proxy zincirlerinde X-Forwarded-For, Cookie ve özel trace header’ları katmanlar boyunca büyüyebilir. Hata yalnız CDN/load balancer üzerinden oluşuyorsa origin ve doğrudan erişim karşılaştırılmalıdır.
Buffer değerleri her bağlantıda ihtiyaç oldukça tahsis edilebilir; gereksiz büyük değerler yüksek eşzamanlılıkta bellek tüketimini artırır.
Buffer’ı yükseltmeden önce en büyük header’ın Cookie mi Authorization mı request URI mı olduğunu ölçün ve uygulama tarafında küçültülebilir veriyi belirleyin.
E-postada, tarayıcıda veya SSH günlüğünde gördüğünüz ifadeyi aratın. Her kartta anlam, muhtemel neden ve güvenli ilk işlem bulunur.
Anlamı: Bir header alanı etkin büyük buffer sınırını aştı.
Muhtemel neden: Büyük Cookie, Authorization/JWT veya proxy header.
Anlamı: NGINX istemci başlığını kabul edemedi.
Muhtemel neden: Cookie birikmesi veya yetersiz large_client_header_buffers.
Anlamı: Genel 400 mesajıdır; log kök nedeni gösterir.
Muhtemel neden: Header, request line, TLS veya bozuk HTTP isteği.
Anlamı: İstek satırı/URI buffer sınırını aştı.
Muhtemel neden: Uzun query string, filtre veya yanlış redirect.
Anlamı: İstemci değil backend response header’ı proxy buffer’ını aştı.
Muhtemel neden: Büyük Set-Cookie veya uygulama header’ları.
Anlamı: Bazı ara katmanlar büyük header için 431 döndürebilir.
Muhtemel neden: CDN, gateway veya uygulama sunucusu limiti.
Anlamı: Uygulama veya proxy cookie boyutunu reddetti.
Muhtemel neden: Session verisinin cookie içine aşırı yazılması.
Anlamı: JWT veya kimlik doğrulama başlığı sınırı aştı.
Muhtemel neden: Büyük claim seti veya zincirlenmiş token.
Bu ifadeyle eşleşen kayıt bulunamadı.
Komutlar root erişimi içindir. Önce yalnızca durum ve log toplayın; nedeni görmeden kalıcı ayar değiştirmeyin.
curl -skD - https://example.com/ -o /dev/null | grep -i '^set-cookie:'
curl -sk -H 'Cookie: TEST=1' -o /dev/null -w '%{http_code}\n' https://example.com/
Set-Cookie üretimini ve kontrollü cookie isteğini inceler.
nginx -T | grep -nE 'client_header_buffer_size|large_client_header_buffers|proxy_buffer_size'
İstemci ve upstream header buffer değerlerini gösterir.
grep -R 'too large header\|too long URI' /var/log/nginx 2>/dev/null | tail -n 100
Hata türünü ve etkilenen isteği bulur.
curl -sk -D /tmp/basliklar.txt https://example.com/ -o /dev/null
wc -c /tmp/basliklar.txt
Yanıt header toplamını kaba olarak ölçer.
curl -skI https://example.com/
curl -skI --resolve example.com:443:ORIGIN_IP https://example.com/
CDN/proxy katmanının header büyütüp büyütmediğini ayırır.
nginx -t && systemctl reload nginx
Makul buffer değişikliğini güvenli uygular.
NGINX hatasının temel nedeni aynı olsa da paket yolları, servis adları, güvenlik katmanları ve sanal host yönetimi kullanılan Linux dağıtımına veya Plesk altyapısına göre değişir.
NGINX 400 Header veya Cookie Too Large için systemd, paket yolu ve journald kontrolleri.
nginx -T | grep -nE 'client_header_buffer_size|large_client_header_buffers'
grep -R 'too large header' /var/log/nginx | tail -n 50NGINX 400 Header veya Cookie Too Large için SELinux, PHP-FPM pool ve RHEL tabanlı servis kontrolleri.
nginx -T | grep -nE 'client_header_buffer_size|large_client_header_buffers'
grep -R 'too large header' /var/log/nginx | tail -n 50Plesk tarafından üretilen NGINX sanal host dosyalarında nginx 400 header veya cookie too large kontrolü.
grep -R 'large_client_header_buffers' /var/www/vhosts/system/example.com/conf /etc/nginx 2>/dev/null
tail -n 100 /var/www/vhosts/system/example.com/logs/proxy_error_logÖnce hangi header’ın büyüdüğünü bulun; uygulama verisini küçültün ve yalnız gerekiyorsa buffer’ı ölçülü artırın.
Gizli pencere veya cookiesiz curl isteğiyle karşılaştırın.
curl -sk -c /dev/null -b /dev/null -o /dev/null -w '%{http_code}\n' https://example.com/Client header, long URI veya upstream response header ayrımını yapın.
tail -n 100 /var/log/nginx/error.logEn büyük cookie/JWT alanını belirleyin ve gereksiz veriyi uygulamada kaldırın.
curl -skD - https://example.com/ -o /dev/null | grep -i '^set-cookie:'Aynı server kapsamındaki client header ayarını kontrol edin.
nginx -T | grep -nE 'client_header_buffer_size|large_client_header_buffers'Sunucu genelinde aşırı değer yerine ilgili vhost için ölçülü boyut seçin.
nginx -tYeni ve eski cookie’li kullanıcıların aynı sayfaya erişimini test edin.
nginx -t && systemctl reload nginxOturum veya JWT cookie’si girişte aşırı büyüyor olabilir.
curl -skD - https://example.com/giris -o /dev/null | grep -i set-cookieSepet/session cookie’leri ve eklenti verisi incelenmelidir.
grep 'too large header' /var/log/nginx/error.log | tailBirden çok token, state ve claim cookie’si aynı domainde birikebilir.
Tarayıcı Application > Cookies alanında boyutları karşılaştırın.Forwarded ve trace header zinciri büyüyor olabilir.
curl --resolve example.com:443:ORIGIN_IP -skI https://example.com/Query string’i POST veya kısa state kimliğine dönüştürmek gerekebilir.
python3 - <<'PY'
url='https://example.com/uzun-url'
print(len(url))
PYBu istemci buffer değil proxy_buffer_size ve Set-Cookie sorunudur.
grep 'upstream sent too big header' /var/log/nginx/error.log | tailBir Cookie, Authorization/JWT, uzun URI veya başka header alanı NGINX buffer boyutunu aştığında oluşur.
Hayır. Geçici olarak erişim sağlar; uygulama aynı büyük cookie’yi yeniden üretirse hata tekrarlar.
Büyük istek satırı ve header alanlarını okumak için sayı ve boyut olarak ek buffer tanımlar; tek bir alan tek buffer boyutuna sığmalıdır.
Evet. Özellikle yüksek eşzamanlılıkta gereksiz büyük değerler bellek kullanımını artırabilir.
Hayır. O hata backend’in yanıt header’ının proxy buffer’ını aşmasıdır; istemci request header ayarlarından ayrıdır.
Token içine çok fazla claim veya profil verisi eklenirse Authorization ya da cookie header’ı hızla büyür.
Domain > Apache & nginx Settings içindeki Additional nginx directives alanı kullanılabilir; değişiklik sonrası etkin config doğrulanmalıdır.
cPanel, WHM, CloudLinux, LiteSpeed, MariaDB, Exim ve güvenlik katmanlarını birlikte analiz ederek yalnızca servisi kaldırmak yerine arızanın temel nedenini gideriyoruz.