【发布时间】:2018-05-16 16:37:56
【问题描述】:
我正在尝试在 EC2 上部署我的 Flask 应用程序。我不想使用 Beanstalk,而是想手动部署它。最终目标是用 nginx 设置 wsgi。在此之前,我只想像在本地开发计算机上那样部署它,即启动 virtualenv,安装所有依赖项,然后运行 python3 application.py。默认情况下,它在端口 5000 上运行。它在本地运行在“localhost:5000/api”。 (api 是蓝图 url)。但是,当我在 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
为什么从5000访问时不起作用?
【问题讨论】:
-
如果没有指定默认主机是
127.0.0.1,它应该是0.0.0.0。所以你将拥有app.run(host='0.0.0.0')。如果它在生产中,我还鼓励您将调试模式设置为 False。
标签: flask amazon-ec2