微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

使用uwsgi和nginx部署Flask应用程序

我想部署一个简单的Web应用程序,我已经使用Python和Flask构build。

我的应用程序有以下结构:

/var/www/watchgallery/ + app + __init__.py + views.py + templates + flask #virtual environment for Flask + run.py #script I used in my machine to start the development Flask server + watchgallery_Nginx.conf + watchgallery_uwsgi.ini + watchgallery_uwsgi.sock

为了这个部署的目的,我正在关注这个链接: http : //vladikk.com/2013/09/12/serving-flask-with-Nginx-on-ubuntu/

在本教程中,Flask应用程序只包含一个hello.py文件。 他configurationuwsgi文件的方式就像这样(/var/www/demoapp/demoapp_uwsgi.ini):

如何在Nginx之后的郊区部署django

ASP.NET网站项目,Mercurial / Git,部署 – 一个简单的方法

如何在没有安装Qt的情况下运行Qt程序?

有没有一种机制来升级/创buildubuntu的.deb包数据库

如何与Apache或Nginx一起使用Capistrano?

[uwsgi] #application's base folder base = /var/www/demoapp #python module to import app = hello module = %(app) home = %(base)/venv pythonpath = %(base) #socket file's location socket = /var/www/demoapp/%n.sock #permissions for the socket file chmod-socket = 666 #the variable that holds a flask application inside the module imported at line #6 callable = app #location of log files logto = /var/log/uwsgi/%n.log

我试图将相同的逻辑应用于我的uwsgi.ini文件,但是我做错了什么。 这是我的文件的样子:

[uwsgi] #application's base folder base = /var/www/watchgallery #python module to import app = run module = %(app) home = %(base)/flask pythonpath = %(base) #socket file's location socket = /var/www/watchgallery/%n.sock #permissions for the socket file chmod-socket = 666 #the variable that holds a flask application inside the module imported at line #6 callable = app

当我在本地机器上开发我的应用时,我运行这个命令来启动服务器: ./run.py 。

这是我的run.py文件

#!flask/bin/python from app import app app.run(debug = False)

现在,我的问题是:我的uwsgi.ini文件应该如何看起来像我的Flask应用程序包含多个单个文件

是否可以通过Citrix客户端build立SSH隧道?

我可以使用Apache服务ClickOnce应用程序吗?

Capistrano deploy.rb文件中的任务问题

在jenkins的远程服务器(windows)上运行批处理脚本

django项目的最低服务器要求

不要紧,你的应用程序有多复杂。 你告诉uWsgi这个入口在哪里,其余的部分通常用Python导入来处理。

在你的情况下,输入是module = %(app)和callable = app 。 因此,uWsgi将加载模块并将请求发送给Flask应用程序的可调用对象。

现在,由于请求是由uWsgi服务的,而不是Flask的服务器,所以你不需要app.run(debug = False)行。 但是你可以用这个技巧来保持开发和生产代码的一致性:

#!flask/bin/python from app import app if __name__ == "__main__": app.run(debug = False)

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐