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

有帮助吗?

解决方案

在OSX上启动

Unices上的Upstart/Init。

UWSGI还拥有自己的流程管理器,因此您也可以运行它。

调整:

检查 邮件列表, ,以了解您的特定要求。 UWSGI很棒,它是一个完整的部署解决方案。

NGINX高于0.8.40的NGINX将默认情况下构建UWSGI绑定,构建nginx,构建UWSGI,您是金色的。

其他提示

这些是我在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_

对我来说,主要的gotyas是:

  • 关闭终端/SSH会话后,如果要保持UWSGI服务器的运行,请使用守护程序选项。
  • 使用VHOST在同一UWSGI实例下运行多个站点,如果您的瓶颈是内存,那就很棒,就像我的瓶颈一样
  • pidfile跟踪当前实例,使您可以致电UWSGI - stop pidfile,uwsgi- start pidfile
  • procname和procname -prefix/append为您的流程提供了一个好名字,因此您可以轻松地使用PS -U用户名| grep some_string

我将与主管一起管理开始,停止过程。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top