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 Timeout
Bu 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_timeout
değ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ı?