Elasticbeanstalk上的Flask-socketIO

时间:2019-12-12 08:24:00

标签: python flask websocket amazon-elastic-beanstalk flask-socketio

Flask-socketIO的作者Miguel Grimberg于2018年10月25日就Elasticbeanstalk上的Flask-socketIO回答了this way

现在,一年后,我正尝试使用在EB Python 2.7上部署的应用程序来执行此操作,但是我无法使其正常工作。

Miguel对EB不使用eventlet Web服务器表示怀疑,实际上我认为Apache不支持eventlet。

在其他地方,Miguel对EB是多线程表示了怀疑,但是我注意到在我的环境配置中,线程数量很多(NumThreads:15)。

我还发现this solution是AWS发布的Python和Apache(显然)用于Web套接字的,但是我无法使其正常工作(我实际上尝试使用port = 5000吗?)。

在Internet上非常流行的解决方案甚至是:

container_commands:

enable_websockets:
    command: |
     sed -i '/\s*proxy_set_header\s*Connection/c \
              proxy_set_header Upgrade $http_upgrade;\
              proxy_set_header Connection "upgrade";\
      ' /tmp/deployment/config/#etc#nginx#conf.d#00_elastic_beanstalk_proxy.conf

,但这似乎与具有Apache Web服务器的默认Python EB平台没有直接关系。

有人在EB环境上使用Flask-socketIO吗?如果可以的话,她可以共享配置吗?

1 个答案:

答案 0 :(得分:0)

我不知道是否可以将其视为我的原始问题的答案,但我必须注意,AWS Elasticbeanstalk已升级到平台2(Python3.7 + Amazon Linux2-3.0.x),该平台也已从将Apache 2.4.43转换为Nginx + Gunicorn。

实际上,这可以解决这个问题,但是对于将旧平台与Apache结合使用仍然有些兴趣。

例如,在更新到平台2之后,我不得不切换回平台1,因为在创建我的应用程序环境(使用aws打开支持案例)时pipenv(在新平台中替换为pip)失败。