【发布时间】: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