无法使用公共 IP 访问 Flask 应用程序

时间:2021-05-11 02:42:05

标签: flask amazon-ec2

我使用以下代码创建了一个示例 Flask 应用程序

from flask import Flask

app = Flask(__name__)


@app.route('/')
def hello():
    return 'Hello, World!'

@app.route('/legacy')
def legacy():
    return 'AWS EC2, RDS, S3, VPC, ELB'

if __name__=="__main__":
    app.debug = True
    app.run(host="0.0.0.0", port="5000")

我正在设置这些环境变量

[ec2-user@ip-172-16-10-185 ~]$ export FLASK_ENV=development
[ec2-user@ip-172-16-10-185 ~]$ export FLASK_APP=hello

and then doing a flask run.

在使用默认路由消息执行 curl localhost:5000 时,我能够获得输出。

(SampleApp) [ec2-user@ip-172-16-10-185 ~]$ curl localhost:5000
Hello, World!(SampleApp) [ec2-user@ip-172-16-10-185 ~]$ 

但是,我无法理解的是,此设置位于公共子网中的 EC2 实例上,并且附加了公共 IP。

当我尝试在“curl publicIP:5000”上做一个 curl 时,我没有看到任何输出。我已经检查了我的安全组并允许来自任何地方的 TCP 5000。

38f9d35533b0:Downloads grv$ curl 54.157.144.214:5000 -v
* Rebuilt URL to: 54.157.144.214:5000/
*   Trying 54.157.144.214...
* TCP_NODELAY set

这是我附加到实例的安全组。 enter image description here

我在这里做错了什么?为什么在对公共 IP 执行 curl 时我看不到相同的 Hello World 输出?

0 个答案:

没有答案