通过 Nginx 的 uwsgi + django - uwsgi 设置/生成?
Posted
技术标签:
【中文标题】通过 Nginx 的 uwsgi + django - uwsgi 设置/生成?【英文标题】:uwsgi + django via Nginx - uwsgi settings/spawn? 【发布时间】:2011-03-12 17:21:12 【问题描述】:我的 Django 应用程序倾向于使用 uwsgi+nginx,任何人都可以分享启动我的 uwsgi 进程的最佳方法吗?有没有人有调整uwsgi的经验?
【问题讨论】:
【参考方案1】:在 OSX 上发布
在 unices 上的 Upstart/init。
uwsgi 也有自己的进程管理器,所以你也可以运行它。
调整:
查看mailing list,获取有关您特定要求的建议。 Uwsgi 很棒,它是一个完整的部署解决方案。
0.8.40以上的Nginx会默认构建uwsgi绑定,构建nginx,构建uwsgi你就大功告成了。
【讨论】:
【参考方案2】:这些是我在我的 fabfile.py 文件中使用的函数(如果您还没有的话,请查看 python fabric):
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【讨论】:
帮了我很多! +1 为“procname”【参考方案3】:我将与 supervisord 一起管理启动、停止过程。
【讨论】:
以上是关于通过 Nginx 的 uwsgi + django - uwsgi 设置/生成?的主要内容,如果未能解决你的问题,请参考以下文章