当端口5000为EC2上的入站流量打开时,为什么我无法点击Flask应用程序

时间:2018-05-16 16:37:57

标签: flask amazon-ec2

我正在尝试在EC2上部署我的Flask应用程序。我想手动部署它,而不是使用Beanstalk。最终目标是使用nginx设置wsgi。在此之前,我只想像在本地开发计算机上那样部署它,即启动virtualenv,安装所有依赖项,然后运行python3 application.py。默认情况下,它在端口5000上运行。它在本地工作在" localhost:5000 / api"。 (api是蓝图网址)。但是,当我在EC2(ubuntu)实例上执行相同操作时,它不起作用。我把网址" ec2-public-ip:5000 / api"在浏览器中,它说"这个页面不起作用。 [ip]没有发送任何数据"。

application.py是应用的入口点:

from myapp.api.factory import create_app

app = create_app(True)

def main():
    app.run(debug=True, threaded=True)

if __name__ == "__main__":
    main()

我为此实例设置了安全组,允许来自任何地方的入站流量(0.0.0.0/0)用于端口80,22,5000

enter image description here

为什么从5000访问时无效?

1 个答案:

答案 0 :(得分:2)

添加此

app.run(host= '0.0.0.0')

根据文档

http://flask.pocoo.org/docs/1.0/quickstart/#a-minimal-application

  

外部可见服务器如果您运行服务器,您会注意到这一点   服务器只能从您自己的计算机访问,而不能从任何计算机访问   其他在网络中。这是默认值,因为在调试模式下a   应用程序的用户可以在您的上执行任意Python代码   计算机。

     

如果禁用了调试器或信任网络上的用户,   只需添加即可使服务器公开   --host = 0.0.0.0到命令行:

     

flask run --host = 0.0.0.0这告诉你的操作系统要监听   所有公共IP。