2017-05-25 10 views
1

Ich setze eine einfache Flask-App (Hallo Welt) auf EC2 und wenn nur EC2 läuft und gehe zur IP-Adresse - scheint gut zu funktionieren. Alles ist im internen Firmennetzwerk. Sobald ich dieselbe EC2 hinter ELB setze - gehe zur gleichen App mit ELB-Adresse - fängt es an, starke Latenz zu erhalten (von 10sec zu 60sec). Ich verwende dafür einen normalen Flask-Webserver (standardmäßig - ich glaube, es ist wsgi).Flask auf AWS EC2 und hohe Latenz bei Verwendung von AWS ELB

-Code ist so einfach wie möglich:

from flask import Flask 
app = Flask(__name__) 

@app.route('/') 
def hello_world(): 
    return 'Hello, World!' 

if __name__ == '__main__': 
    app.run(host='0.0.0.0', port=8080) 

Wenn ich Apache oder Nginx (ohne Glaskolben, nur Standard-Homepage) - ohne Latenz überhaupt. Aber ich konnte nicht hinter Apache oder Nginx Flask arbeiten.

Hat jemand diese Art von Latenz zwischen ELB und Flask (auf EC2) erlebt? Ich habe verschiedene Betriebssysteme (CentOS, Ubuntu), verschiedene ELB, verschiedene EC2, verschiedene Ports (80, 8080, 8000 etc.) ausprobiert - immer noch Problem mit sehr hoher Latenz und Flask.

Danke.

+0

Was ist Ihr Ansatz zum Starten der Kolben-Server? –

+0

'Python hallo.py'. Auch versucht: 'uwsgi --socket 0.0.0.0: 8080 --protocol = http - w wsgi' Ansatz, aber die Latenz nicht verbessert. – cikavladimir

+0

Können Sie Ihre ELB-Konfiguration teilen? –

Antwort

0

Ich habe kürzlich exakt dasselbe Problem erfahren. Dies liegt an der Inkompatibilität zwischen AWS ELB und uwsgi. Die Lösung ist genau wie das, was Sie gesagt haben, setzen Sie Nginx vor Flask als Proxy, dann ist das Problem gelöst. Für detaillierte, können Sie es hier lesen: https://github.com/unbit/uwsgi/issues/930