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