это функции, которые я использую в своем файле 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_
для меня основные готы были:
- используйте опцию daemonise, если вы хотите, чтобы сервер uwsgi работал после закрытия сеанса терминала / ssh
- используйте vhost для запуска нескольких сайтов под одним экземпляром uwsgi, что замечательно, если у вас узкое место в памяти, как у меня с фантастическим хостом веб-фракций
- pidfile отслеживает текущий экземпляр, позволяя вам вызывать uwsgi --stop pidfile, uwsgi --start pidfile
- procname и procname-prefix / append дают хорошее имя вашему процессу, чтобы вы могли легко выделить его, используя ps -u username | grep some_string