flask-anwendung timeout mit amazon load balancer

7

Ich versuche, eine Flask-Anwendung hinter einem Amazon Load Balancer zu verwenden, und die Flask-Threads halten das Timing aus. Es scheint, dass der Load Balancer einen Connection: keep-alive Header sendet und dies verursacht, dass der Flask-Prozess nie zurückkehrt (oder eine lange Zeit braucht). Mit dem Gunicorn werden die Prozesse beendet und neue gestartet. Wir haben auch versucht, uWSGI zu verwenden und die Flask App einfach direkt zu exponieren (kein Wrapper). Alle führen dazu, dass der Flask-Prozess nicht reagiert.

Ich sehe in den Flask-Dokumenten nichts, was diesen Header ignorieren würde. Ich weiß nicht, was ich noch mit Flask machen kann, um das Problem zu lösen.

Locken und direkte Verbindungen zur Maschine funktionieren gut, nur diejenigen über den Load Balancer verursachen das Problem. Der Load Balancer selbst scheint nichts falsch zu machen und wir verwenden ihn erfolgreich mit mehreren anderen Stacks.

    
edA-qa mort-ora-y 08.05.2013, 15:09
quelle

4 Antworten

8

Die Lösung, die ich jetzt habe, benutzt Gunicorn als Wrapper um die Flaschenapplikation. Für worker_class verwende ich eventlet mit mehreren Arbeitern. Diese Kombination scheint stabil und ansprechend zu sein. Gunicorn ist auch für HTTPS konfiguriert.

Ich nehme an, dass es ein Fehler in Flask ist, der das Problem verursacht, und dies ist eine effektive Problemumgehung.

    
edA-qa mort-ora-y 15.07.2013, 06:48
quelle
1

Haben Sie daran gedacht, session.permanent = True und app.permanent_session_lifetime zu setzen?

    
Charles Merriam 16.07.2013 04:22
quelle
0

Der einfachste Weg besteht darin, sicherzustellen, dass Sie HTTP/1.0 verwenden und nicht den Header Connection: Keep-Alive zur Antwort hinzufügen.

Bitte checkout werkzeug.http.remove_hop_by_hop_headers() .

    
dnozay 13.07.2013 08:16
quelle
0

Benötigen Sie einen HTTP Load Balancer? Die Verwendung eines Layer 4 Balancers könnte genauso gut Ihr Problem lösen, da es nicht mit höheren Protokollebenen interferiert.

    
Jan-Philip Gehrcke 15.07.2013 14:39
quelle

Tags und Links