AWS EC2上的Flask和使用AWS ELB时的高延迟

时间:2017-05-25 00:46:39

标签: amazon-web-services flask amazon-elb latency

我在EC2上设置了简单的Flask app(hello world),当只运行EC2并转到IP地址时 - 似乎运行良好。 一切都在内部公司网络中。 很快我将相同的EC2放在ELB后面 - 使用ELB地址访问同一个应用程序 -  它开始变得很重要(从10秒到60秒)。我正在使用常规的Flask Web服务器(默认一个 - 我相信它是wsgi)。

代码尽可能简单:

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)

如果我使用Apache或Nginx(没有任何Flask,只是默认主页) - 根本没有延迟。但我无法在Apache或Nginx之后开始使用Flask。

有没有人在ELB和Flask(在EC2上)之间遇到这种延迟? 我尝试了不同的操作系统(CentOS,Ubuntu),不同的ELB,不同的EC2,不同的端口(80,8080,8000等) - 仍然存在极高延迟和Flask的问题。

感谢。

1 个答案:

答案 0 :(得分:0)

我最近遇到了完全相同的问题。这是由于AWS ELB和uwsgi之间不兼容。解决方案就像你说的那样,将Nginx作为代理放在Flask前面,然后问题就解决了。有关详细信息,请在此处阅读:https://github.com/unbit/uwsgi/issues/930