2011-09-07 28 views
12

Kısa bir süre önce nginx tabanlı bir ters proxy uyguladık.NGINX Ters Proxy: Birçok html durum kodu 400 yanıt, neden?

Erişim günlüklerimizde hata ayıklama yaparken, oldukça küçük bir durum kodu 400 sonucu görüyoruz. Biz tamponların bir dizi yükselterek çalıştılar

2011/09/07 05:09:28 [info] 5937#0: *30904 client closed prematurely connection while reading client request line 

:

Onlar şuna benzer:

[07/Sep/2011:05:49:04 -0700] - "400" 0 "-" "-" "-" 

Biz sağladı ayıklama hata günlüğü, ve genellikle böyle bir şey uygun Birkaç sayfadan da bahsettiğimiz gibi, Google’a ulaşabildik.

http://www.ruby-forum.com/topic/173362

ya boşuna için

http://blog.craz8.com/articles/2009/06/17/nginx-400-bad-request-errors-due-to-cookies-and-what-to-do-about-them

.

Bu neden oluyor?

Bu bir strandard nginx ters proxy -> apache arka uç sunucusudur.

Değinmeden bahsetmek gerekirse, sitemizdeki benzersiz içerik türü oldukça azdır. Bunu birçok tarayıcı kullanarak test ettik ve bu 400 sonuçtan herhangi birini bizzat almadık.

Teşekkürler! kendi günlüklerinde benzer girdileri detaylandırma


Daha URL'ler:

http://blog.rayfoo.info/2009/10/weird-web-server-access-log-entries

+0

Apache'nin günlüğünü ve ikinci nginx'in ilk günlüğünü mü? – palacsint

+0

Negatif. Birincisi nginx erişim günlüğü, ikincisi hata ayıklamak için ayarlanan nginx hata günlüğüdür. –

+1

EC2 Elastik Yük Dengeleyici arkasında mı? Sağlık kontrolünün bir kısmı, kayıtlarda sık sık bunların kaydedilmesine neden olur. – Meekohi

cevap

0

Birincisi, müşterileriniz gerçekten büyük http başlıklarında veya adresler ile isteği göndermek olduğundan oldukça mümkündür. Belki de uygulamanızın eski bir sürümü, şimdi kullanılmayan bazı (muhtemelen büyük) çerezler koydu ve bazı müşteriler hala onları geri göndermeye çalışıyor.

Başlık arabelleklerini çok büyük bir değere ayarlıyorum ve uygulama tarafında, üstbilgiler/isteklerin boyutunu ve her zamankinden büyükse tam isteği günlüğe kaydederdim. Veya nginx'i zincirden tamamen çıkartın ve başlığı/talebi aynı koşullarla kaydedin. Yapabilecekleriniz varsa, nginx'i sadece 400 hatanın geldiği IP/alt ağlar için çıkartın. Nginx, bu 400 hata için kaynak IP'yi kaydedebilir.

+0

, maksimum başlık boyutunu 2048k olarak ayarlamayı denedi. aynı sorun devam ediyordu. Bu oldukça sık olduğu için birkaç tcpdump koşusu yapmaya çalışırsanız ... bu çok aktif bir üretim sunucusunda bile bir kaç 2-3 dk. –

+0

Uh, 2097152 bayt, herhangi bir http isteği için yeterli olmalıdır. tcpdump iyi bir fikirdir. Bir şey bulursan haberim olsun. – palacsint

1

SSL bağlantılarını mı kullanıyorsunuz? Erişim günlüğü biçiminize $ssl_cipher $ssl_protocol ekleyebilir misiniz?

8

Bunun görüldüğü üzere, herhangi bir veri göndermeden ara sıra görünebilen ek bağlantıları olan Chrome kullanıyor. - cevap çok tatmin edici değildi sağlanan

http://www.ruby-forum.com/topic/2953545 Şimdi soru onlar hakkında ne olduğunu:

Burada bazı bilgilerim.