【问题标题】:Serve Flask Server Over HTTPS通过 HTTPS 服务 Flask 服务器
【发布时间】:2020-10-22 14:41:15
【问题描述】:

我正在学习 AWS,目前正在尝试通过 HTTPS 部署 Flask API。我设置了一个运行 Apache 的 EC2 实例。我已经使用 ELB 在网站上设置了 SSL,我尝试使用以下内容通过 HTTPS 部署烧瓶:

if __name__ == '__main__':
    context = ("server.crt", "server.key")
    app.run(host="0.0.0.0",port=5000,debug=True,ssl_context=context)

但是,我认为该站点甚至没有正确启动 Flask 服务器,因为即使所有内容都已加载并且我收到一条消息表明 Flask 正在https://0.0.0.0:5000/ 上运行,但通过浏览器发送一个简单的 GET 请求并没有工作,因为请求永远不会加载,它最终会超时。它几乎表现得好像没有服务器在端口 5000 上运行。

另一方面,当我通过 http 而不是 https 运行这个程序时,它运行得非常好。任何人都可以帮助我解决我应该做什么?谢谢。

【问题讨论】:

  • 如果您在 ELB 上设置了 HTTPS,那么您通常不需要在 ec2 实例上使用 HTTPS。连接如下所示:client---https--->ELB---http---> EC2.
  • 那么我该如何向端点发出请求呢?只是 https://:5000>
  • 是的。您将使用 https://。 ELB 将终止 HTTPS 并使用 HTTP 将请求转发到您的实例。如果它不起作用,则必须查看 ALB、Listener 和 Target group 的所有设置。
  • 那行得通。非常感谢!
  • 很高兴听到。如果您不介意,我会回答以供将来参考。

标签: python amazon-web-services api flask https


【解决方案1】:

基于 cmets。

问题的解决方案是在 ELB 上终止 HTTPS 连接。这样,ELB 和 EC2 实例之间的通信就可以使用 HTTP 进行,在实例上简单且易于管理。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2022-07-12
    • 1970-01-01
    • 1970-01-01
    • 2023-03-06
    • 2018-03-31
    • 2010-11-19
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多