【发布时间】:2017-10-25 12:27:48
【问题描述】:
我在 EC2 上设置了简单的 Flask 应用程序(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 的问题。
谢谢。
【问题讨论】:
-
你启动烧瓶服务器的方法是什么?
-
python hello.py。也尝试过:uwsgi --socket 0.0.0.0:8080 --protocol=http -w wsgi方法但没有改善延迟。 -
你能分享你的 ELB 配置吗?
-
以哪种方式?我在一些论坛上发现 Flask 默认服务器不是最好的(不能正确处理打开的 TCP 请求).. 你对 ELB 有什么建议应该设置?
-
您尝试过 HTTP 吗? (要共享 ELB 配置,如果您使用 CloudFormation,可以共享您的 CloudFormation 模板)
标签: amazon-web-services flask amazon-elb latency