111:尝试连接到 AWS EC2 实例上的 Flask 应用程序时出现连接被拒绝错误
Posted
技术标签:
【中文标题】111:尝试连接到 AWS EC2 实例上的 Flask 应用程序时出现连接被拒绝错误【英文标题】:111: Connection refused error when trying to connect to Flask app on AWS EC2 instance 【发布时间】: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 流日志。 ***.com/a/65341085/14843902
确认我可以从 SSH 中启动和停止应用程序,但无法从外部访问它。尝试使用可达性分析器,它显示它是可达的,所以不知道下一步该做什么。是否有我应该处理的 nginx 或 wsgi 配置文件?亚马逊文档说 nginx 自动传递到端口 5000,所以尝试切换到该端口,但仍然没有
【参考方案1】:
您谈论端口 80 和端口 8000....应用程序使用的是哪一个?如果是 8000,则需要在安全组中允许端口 8000。
端口 8000,源 0.0.0.0/0
根据您的需要,您可能希望收紧 Source。如果您的服务器具有公共 IP,这一点更为重要。
【讨论】:
以上是关于111:尝试连接到 AWS EC2 实例上的 Flask 应用程序时出现连接被拒绝错误的主要内容,如果未能解决你的问题,请参考以下文章
从 Elastic Beanstalk 连接到托管在 AWS ec2 上的 MongoDB
无法从 AWS EC2 实例连接到 Mlab.com 数据库