2017-05-25 93 views
1

當我設置的EC2簡單的瓶的應用程序(你好世界)和運行僅EC2並轉到IP地址的時候 - 似乎工作好。 所有內部公司網絡。 一旦我把同樣的EC2背後ELB - 要使用ELB地址相同的應用程序 - 它開始變得沉重的潛伏期(從10秒到60秒)。我使用普通的Flask web服務器(默認的 - 我相信它是wsgi)。瓶在AWS EC2和高延遲使用AWS ELB

代碼儘可能簡單:

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的(沒有任何瓶,只是默認主頁) - 無延遲的。但是我無法在Apache或Nginx後面運行Flask。

有沒有人遇到這種類型的延遲ELB和瓶(在EC2)之間? 我嘗試了不同的操作系統(CentOS的,Ubuntu的),不同的ELB,不同的EC2,不同的端口(80,8080,8000等) - 問題仍然具有非常高的延遲和瓶。

謝謝。

+0

你是什麼方法來啓動服務器瓶? –

+0

'python hello.py'。還試過:'uwsgi --socket 0.0.0.0:8080 --protocol = http -w wsgi'方法,但沒有提高延遲。 – cikavladimir

+0

你能分享你的ELB配置嗎? –

回答

0

我最近經歷了完全一樣的問題。這是由於AWS ELB和uwsgi之間不兼容。解決方案就像你說的,把Nginx作爲代理放在Flask前面,然後問題就解決了。有關詳細,你可以在這裏閱讀:https://github.com/unbit/uwsgi/issues/930