我想部署一个简单的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] 举报,一经查实,本站将立刻删除。