uwsgi + django通过Nginx - uwsgi settings / spawn?

时间:2010-07-07 09:08:42

标签: python django nginx wsgi uwsgi

我倾向于uwsgi + nginx用于我的Django应用程序,任何人都可以分享启动我的uwsgi进程的最佳方法吗?有没有人有调整uwsgi的经验?

3 个答案:

答案 0 :(得分:4)

在OSX上发布

unices上的Upstart / init。

uwsgi也有自己的流程管理器,所以你也可以运行它。

调整:

查看mailing list,了解有关您的特定要求的建议。 Uwsgi很棒,它是一个完整的部署解决方案。

Nginx高于0.8.40将默认构建uwsgi绑定,构建nginx,构建uwsgi并且你是金色的。

答案 1 :(得分:1)

这些是我在fabfile.py文件中使用的函数(如果你还没有,请查看python结构):

def start_uwsgi():
    with cd(env.server.uwsgi):
        if(exists('server.pid')):
            stop_uwsgi()
            run('sleep 1')
        run('source venv/bin/activate;uwsgi --ini uwsgi.ini;'))

def stop_uwsgi():
    with cd(env.server.uwsgi):
        if(exists('server.pid')):
            run('source venv/bin/activate;uwsgi --stop server.pid;'))

在我的uwsgi.ini文件中,我指定:

[uwsgi]
socket = :{{your_port}}
master = true
vhost = true
no-site = true
processes = 1
enable-threads = true
pidfile = server.pid
daemonize = server.log
auto-procname = true
procname-prefix = servername_

对我来说主要的东西是:

  • 如果要在关闭终端/ ssh会话后保持uwsgi服务器运行,请使用daemonise选项
  • 使用vhost在同一个uwsgi实例下运行多个站点,如果你的瓶颈是内存,那就太好了,就像我的是非常棒的webfaction主机
  • pidfile跟踪当前实例,使您可以调用uwsgi --stop pidfile,uwsgi --start pidfile
  • procname和procname-prefix / append为您的流程提供了一个很好的名称,因此您可以使用ps -u username轻松地将其单个化。 grep some_string

答案 2 :(得分:0)

我将与supervisord一起管理启动,停止过程。