我使用以下代码创建了一个示例 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
我在这里做错了什么?为什么在对公共 IP 执行 curl 时我看不到相同的 Hello World 输出?