Django, uWSGI и конфигурация Supervisord

Фиксация Pawel работала на меня, но sendmailconfig не существовал на песнях, таким образом, я должен был работать

cd /etc/mail    
m4 /usr/share/sendmail-cf/m4/cf.m4 sendmail.mc > sendmail.cf
service sendmail restart

обновить конфигурацию

2
задан 26 January 2012 в 15:51
2 ответа

Я обнаружил, что это довольно запутанно, пока я не обнаружил режим императора .

Это означает, что вы можете создать один экземпляр супервизора для управления всеми своими конфигами:

[program:uwsgi]
command=/usr/local/bin/uwsgi --emperor /etc/uwsgi/apps-enabled
stopsignal=QUIT
autostart=true
autorestart=true
redirect_stderr=true

И затем вы помещаете любые файлы конфигурации (ini, xml, yaml) для приложений в каталог / etc / uwsgi / apps-enabled .

Не уверен, что это работает с 0.9, но определенно работает с 1.0.

Вот пример ini для приложения Flask:

[uwsgi]
socket = /tmp/uwsgi_%n.sock
module = wire:app
chdir = /srv/%n/wire
env = WIRE_SETTINGS=/srv/%n/wire/config.py
virtualenv = /srv/%n
uid = wire
gid = www-data
single-interpreter = false
chmod = 770
processes = 3
5
ответ дан 3 December 2019 в 09:48

Вот рабочий файл конфигурации супервизора (нормальный режим, не режим императора):

[program:frite]
command=/home/mep/envs/frite_prod/bin/uwsgi
  --home frite_prod
  --module frite_deploy_wsgi
  --socket /home/frite/envs/frite_prod/frite.sock
  --chmod-socket 666
  --pythonpath /home/mep/envs/frite_prod/fr-frite
  --pythonpath /home/mep/envs/frite_prod/fr-frite/frite
  --processes 8
  --master -L -l 250 -z 5
  --post-buffering 1
directory=/home/frite/envs/
environment=DJANGO_SETTINGS_MODULE='frite.settings'
user=frite
autostart=true
autorestart=true
stdout_logfile=/home/frite/envs/frite_prod/uwsgi.log
redirect_stderr=true
stopsignal=QUIT

Ваше приложение должно быть установлено в виртуальном окружении. (В этом примере у меня есть приложение, работающее от имени пользователя frite. Итак, я создал пользователя unix с помощью sudo addusr или чего-то еще и поместил туда virtualenvs и файлы. Так что он изолирован от остальной системы.

А frite_deploy_wsgi.py - это своего рода программа запуска, которая содержит только:

import django.core.handlers.wsgi
application = django.core.handlers.wsgi.WSGIHandler()

Cheers

0
ответ дан 3 December 2019 в 09:48

Теги

Похожие вопросы