我有一个烧瓶应用程序,目前正在按以下方式启动:
#phantom.py
__author__ = 'uruddarraju'
from phantom.api.v1 import app
app.run(host='0.0.0.0', port=8080, debug=True)
当我运行此脚本时,它通过打印成功执行:
loading config from /home/uruddarraju/virtualenvs/PHANTOMNEW/Phantom/etc/phantom/phantom.ini
* Running on http://0.0.0.0:8080/
但它永远不会返回,如果我执行CTRL-C,服务器就会停止。我正试图将此部署到生产环境中,并希望在后台运行此启动,只要服务器启动,进程就会一直运行。
最好的方法是什么?
在生产中,我最喜欢的方法是将烧瓶与uwsgi和nginx结合以保持持久性。下面是一些很好的安装说明,可以帮助您开始:http://www.markjberger.com/flask-with-virtualenv-uwsgi-nginx/
Jist:
首先确保您的vps有最新更新:
现在安装python和virtualenv:
为网站创建文件夹:
安装virtualenv并安装烧瓶:
把你的烧瓶应用放在这个文件夹里。确保您的主机设置为0.0.0.0,并且您的应用程序处于if
__name__ == '__main__':
下。如果你的应用程序在一个函数中,uwsgi将无法调用它。现在是用flask development server测试应用程序的好时机,看看到目前为止是否一切正常。如果一切顺利,请安装nginx和uwsgi:
接下来,我们必须创建一个套接字文件,供nginx与uwsgi通信:
通过将mysite.sock的所有者更改为www data,nginx将能够写入套接字。现在我们要做的就是添加nginx和uwsgi的配置文件。首先删除nginx的默认配置:
创建一个新的配置文件mysite并添加以下内容:
为了启用站点,我们必须将配置文件链接到/etc/nginx/sites enabled/:
这个过程与uwsgi相似。创建/etc/uwsgi/apps available/mysite.ini文件并添加以下内容:
Module是python脚本的名称,callable是flask实例的名称。所以如果你的烧瓶网站在一个名为mysite.py的文件中,看起来是这样的:
您的mysite.ini文件将是:
将配置文件链接到“已启用的应用”文件夹:
最后,重新启动nginx和uwsgi:
可能是让它在后台运行的最简单的方法。也就是说,如果你像@LukasGraf提到的那样将flask应用投入生产(我也相信他们的文档),那么你不应该使用app.run()服务器为你的flask应用提供服务
试试Supervisord。它以指定用户的身份启动命令,并在命令终止后重新启动它们。对于您想要做的事情,配置非常简单。
相关问题 更多 >
编程相关推荐