Gungin için ELB arkasında Nginx olmadan koruma ayarı


15

Uygulamamızın REST API'sı, tipik bir otomatik ölçeklendirme / yük dengeleme kurulumuna sahip AWS EC2 örneklerinde çalışan Gunicorn (Nginx'in arkasında değil ) tarafından sunulur . Yük dengeleyicinin boşta kalma zaman aşımı 60 saniyedir ve Gunicorn'un canlı tutma zaman aşımı 2 saniyedir. 504 Gateway TimeoutBu yapılandırmada ara sıra yanıtlar görüyoruz . Amazon belgelerine göre , bunun nedeni sunucunun canlı tutma zaman aşımının yük dengeleyicinin boşta kalma zaman aşımı ayarından daha düşük olması olabilir:

Neden 2: Elastik Yük Dengeleme bağlantısını kapatan kayıtlı örnekler.

Çözüm 2: EC2 bulut sunucularınızda canlı tutma ayarlarını etkinleştirin ve canlı tutma zaman aşımını yük dengeleyicinizin boşta kalma zaman aşımı ayarlarına eşit veya daha büyük bir değere ayarlayın.

Nginx ile varsayılan keepalive_timeoutdeğer 75 saniyedir ve görünüşe göre ELB varsayılan ayarlarıyla iyi çalışır. Ancak, Gunicorn belgelerikeepalive 1-5 saniye aralığında bir ayar önermektedir .

Gunicorn'un saklayıcılığını 75 saniyeye çarpmak mantıklı mı yoksa önünde ters proxy kullanmasak da 5 saniyenin altında tutmak için iyi bir neden var mı?

Yanıtlar:


16

ELB'nin bağlantılarını yeniden kullandığı için, ELB tavsiyesine göre tutma zamanlayıcısını neredeyse kesinlikle yükseltmek isteyeceksiniz. Zaman aşımı sona erene kadar onları tutacaktır ve ELB'ye başka bir istek geldiyse, genellikle size göndermek için zaten açık olan bağlantılardan birini kullanır.

504 Gateway Timeout bu durum için garip bir hatadır, ancak bağlantının yeniden kullanılması arka ucun erken kapanışıyla çakıştığında ELB'nin döndürdüğü şey budur.

Tarayıcıların arka uçla doğrudan iletişim kurması durumunda 5 saniyelik öneri anlamlı olabilir, ancak HTTP modunda çalışırken uygun bir ters proxy olan ELB'de durum böyle değildir.


Teşekkürler, bundan şüpheliydim. Bu hafta bu değişikliği deneyeceğim ve her şey yolunda giderse cevabınızı doğru işaretleyeceğim :)
handsofaten

Değişikliği yaklaşık bir hafta önce birleştirdik ve 504'ler çok daha az yaygın hale geldi (haftada birkaç yüz yerine haftada birkaç kez).
handsofaten
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.