【问题标题】:flask-socketio run on Application Load Balancerflask-socketio 在应用程序负载均衡器上运行
【发布时间】:2018-07-05 16:46:44
【问题描述】:

我有一个在 AWS Application Load Balancer 上运行的 Flask 应用程序,但无法让 Web 套接字工作。在阅读了几篇文章并在 EC2 上配置了负载均衡器、目标组、粘性之后,我得出的结论是 ALB 可能没有正确地启动应用程序。

Flask-SocketIo 表示使用 socketio.run(application, host='0.0.0.0', port=port) 来启动 Web 服务器,因为它封装了 application.run()。但是在进一步阅读之后,我发现 EC2 已经调用了application.run(),而无需在启动脚本中明确这样做,因此它可能只是绕过了我的socketio.run(),而不是启动我的网络服务器。

会是这样吗?如何验证并确保 socketio 正常启动?

【问题讨论】:

    标签: python amazon-ec2 websocket amazon-elb


    【解决方案1】:

    要通过负载均衡器访问应用程序,您必须首先确保目标组中的目标是健康的。健康状态显示在 AWS Web 控制台的 Targets 选项卡上的目标组实例详细信息中。

    如果您的目标组中没有目标,请按编辑按钮并从列表中选择您的 EC2 实例来添加一个。不要忘记使用适当的端口。还要确保正确配置了健康检查(路径、端口...)。您可以在目标群体详细信息页面的“健康检查”选项卡上找到它们。

    如果以上一切正常,并且您在 TG 中有一个健康的目标,但 ELB 没有显示您的应用程序,我建议您使用 Flask 应用程序通过 SSH 连接到您的 EC2 实例,并检查该实例是否运行正常。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-07-28
      • 2018-02-26
      • 2018-10-15
      • 1970-01-01
      • 1970-01-01
      • 2021-12-07
      • 2019-02-09
      • 2012-01-11
      相关资源
      最近更新 更多