【问题标题】:111: Connection refused error when trying to connect to Flask app on AWS EC2 instance111:尝试连接到 AWS EC2 实例上的 Flask 应用程序时出现连接被拒绝错误
【发布时间】:2021-04-23 05:03:39
【问题描述】:

我正在努力弄清楚如何连接到托管在 AWS EC2 实例上的 Flask 应用程序。它正在运行和部署,但我收到以下错误。

connect() failed (111: Connection refused) while connecting to upstream, client: 71.228.155.185, server: , request: "GET /favicon.ico HTTP/1.1", upstream: "http://127.0.0.1:8000/favicon.ico", host: "my-site***", referrer: "my-site***"

我已经看到了关于确保我的应用程序指向端口 8000 的类似问题的其他答案,因此我在初始化时有以下内容。

if __name__ == "__main__":
    application.run(host='127.0.0.1', port=8000)

我还进入了我的 VPC 安全组,并确保端口 80 上允许所有 HTTP 连接,我认为这应该使我能够连接。

还有其他人发现这个问题并解决了吗?

【问题讨论】:

  • 这意味着 nginx 无法连接到烧瓶应用服务器。检查应用程序日志,可能由于某些错误而无法启动
  • 如果你ssh到实例,你能确认你的flask在http://127.0.0.1:8000运行时curl它吗?
  • 我确认该应用程序正在日志中运行。我会尝试 curl 看看是否有效
  • 检查 AWS VPC 流日志。 stackoverflow.com/a/65341085/14843902
  • 确认我可以从 SSH 中启动和停止应用程序,但无法从外部访问它。尝试使用可达性分析器,它显示它是可达的,所以不知道下一步该做什么。是否有我应该处理的 nginx 或 wsgi 配置文件?亚马逊文档说 nginx 自动传递到端口 5000,所以尝试切换到该端口,但仍然没有

标签: amazon-web-services nginx flask amazon-ec2 amazon-elastic-beanstalk


【解决方案1】:

您谈论端口 80 和端口 8000....应用程序使用的是哪一个?如果是 8000,则需要在安全组中允许端口 8000。

端口 8000,源 0.0.0.0/0

根据您的需要,您可能希望收紧 Source。如果您的服务器具有公共 IP,这一点更为重要。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-08-16
    • 2021-12-18
    • 2012-06-07
    • 1970-01-01
    • 2020-01-03
    • 1970-01-01
    • 2015-10-12
    相关资源
    最近更新 更多