下面说说,使用debian官方的包如何做uwsgi发布,还是vhost模式哦。
首先安装uwsgi,uwsgi-plugin-python这两个包。uwsgi-plugin-greenlet-python也可以考虑,装不装看你的需求。
然后在/etc/uwsgi/apps-available/sites.xml下面写一个文本文件,内容如下:
<uwsgi>
<vhost/>
<no-site/>
</uwsgi>
再从/etc/uwsgi/apps-enabled/sites.xml链接过去,重启uwsgi服务,事情就搞定了。
默认的配置在/usr/share/uwsgi/conf/default.ini,可以看看是否都满意了。一般来说,master和no-orphans都建议打开,chmod-socket最高660,改成600应该也可以工作。贝壳的机器负载小,只用一个worker就够了,所以完整的配置是这样的:
<uwsgi>
<plugins>greenlet,ugreen</plugins>
<workers>1</workers>
<reload-on-as>128</reload-on-as>
<vhost/>
<no-site/>
</uwsgi>
nginx里面如此设定:
location /asdf {
include uwsgi_params;
uwsgi_param UWSGI_PYHOME /usr;
uwsgi_param UWSGI_CHDIR /var/web/hosts;
uwsgi_param UWSGI_SCRIPT main;
uwsgi_pass unix:/run/uwsgi/sites/socket;
}
其中,我的程序放在/var/web/hosts底下,使用系统环境来运行(而不是virtualenv),主脚本(带applications那个)是main.py。unix socket和上文default.ini里面的socket正好对应上。
同理,我们其实还可以开多个uwsgi应用,只要放置多个xml配置就好。不过既然都采用了vhost模式,何必还开多个呢?这毕竟不是虚拟网站,要给其他人使用的。
没有评论:
发表评论