nginx boş 200 yanıt gönder


19

Gelen herhangi bir isteği kabul etmek ve boş 200 yanıtla yanıtlamak için bir yük devretme sunucusu yapılandırıyorum. Fikir, yanıt süresini en aza indirgemek ve 40x veya 50x göndermediğimizden emin olmaktır.

return 200;Nginx içinde istenen konumlar için kullanmayı denedim , ancak izleme sistemlerim (Pingdom) yanıtı beğenmedi ve sunucunun yanıt vermediğini düşünün.

Bunu yapmanın daha iyi bir yolu var mı, elbette sunucu üzerinde minimum ek yük ile?

Yanıtlar:


23

HTTP durum kodu 204 No Content, "İsteği tamamladım, ancak döndürülecek bir gövde yok" anlamına gelir:

10.2.5 204 İçerik Yok

Sunucu isteği yerine getirdi, ancak varlık gövdesini döndürmesi gerekmiyor ve güncellenmiş metainformasyonu geri vermek isteyebilir. Yanıt, mevcutsa istenen varyantla ilişkilendirilmesi gereken varlık başlıkları biçiminde yeni veya güncellenmiş metainformasyon içerebilir.

İstemci bir kullanıcı aracısıysa, belge görünümünü isteğin gönderilmesine neden olandan DEĞİŞTİRMEMELİDİR. Bu yanıtın öncelikle kullanıcı aracısının aktif belge görünümünde bir değişikliğe neden olmadan eylemlerin gerçekleşmesine izin vermesi amaçlanmıştır, ancak yeni veya güncellenmiş metainformasyon şu anda kullanıcı aracısının aktif görünümünde olan belgeye uygulanmalıdır.

204 yanıtı bir ileti gövdesi İÇERMEMELİDİR ve bu nedenle her zaman başlık alanlarından sonraki ilk boş satırla sonlandırılır.


Merhaba Alex Not için teşekkürler. 204 yanıt kodunun bu gün tüm büyük tarayıcılar tarafından tanındığını merak ediyorum. sunucum 204 civarında göndermeye başlarsa, bazı ziyaretçilerin (tarayıcılar, cep telefonları, terminaller arasında) hata alma olasılığı var mı?
Sparsh Gupta

1
@SparshGupta Tarayıcı uyumluluğu konusunda uzman değilim, üzgünüm. Birkaç tarayıcıda hızlı bir kontrol yaptım (Mac OSX altında FF 7 ve Safari) - tam olarak hiçbir şey yapmıyorlar. Örneğin, zaten açık bir sayfanız varsa, adres çubuğuna 204 döndüren bir URL koyar ve Enter tuşuna basarsanız, her iki tarayıcı da önceki sayfayı gösterir.
Alexander Azarov

29

Nginx'in aşağıdaki gibi bir yapılandırma bloğu tarafından boş bir HTTP 200'ü geri döndürmesini sağlayabilirsiniz:

location = /health {
  return 200;
  #access_log off;
}

access_logTüm bu sağlık kontrollerinin günlüğe kaydedilmesini istemiyorsanız satırı kaldırabilirsiniz .


6
Konumdan sonraki '=' işaretinin önemli olduğuna dikkat edilmelidir. Bu dosya olmadan, bu dosya mevcut olmalıdır, aksi takdirde nginx 200 döndürmez. Bununla birlikte, istediğiniz herhangi bir yeri oluşturabilir ve dosyalar hakkında endişelenmeyebilirsiniz ve nginx mutlu bir şekilde 200'e dönecektir.
Florin Andrei

Bunu, kimlik doğrulamalı istek 200 ve kimliği doğrulanmamış 401 döndürecek şekilde temel yetkilendirme ile nasıl birleştirebilirim?
Kiril
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.