Django, uWSGI & nginx: процесс умирает без причины - PullRequest
1 голос
/ 25 марта 2011

Я использую uWSGI и nginx для запуска двух приложений Parallell Django. Один из них, один с большей нагрузкой (оба очень маленькие), умирает примерно раз в 24 часа со следующим сообщением:

[pid: 16358|app: 0|req: 1000/1000] 127.0.0.1 () {46 vars in 847 bytes} [Thu Mar 24 16:38:31 2011] GET /aktivitet/409/picknick/ => generated 18404 bytes in 117 msecs (HTTP/1.0 200) 3 headers in 156 bytes (1 switches on core 0) <strong>...The work of process 16358 is done. Seeya!</strong>

Я запускаю процессы, используя Supervisor со следующей конфигурацией:

[program:uttrakad] command=/home/myuser/webapps/uwsgi_test/bin/uwsgi -s /home/myuser/webapps/uwsgi_test/app1.sock -C /home/myuser/webapps/django/app1.wsgi --processes 1 --harakiri 120 --max-requests 1000 autostart=true autorestart=true stdout_logfile=/home/myuser/logs/user/uwsgi_app1.log redirect_stderr=true stopsignal=QUIT

Файл .wsgi прост:

import os import sys sys.path =['/home/openworks/webapps/django/lib/python2.6/','/home/openworks/webapps/django/','/home/openworks/webapps/django/app1/'] + sys.path from django.core.handlers.wsgi import WSGIHandler os.environ['DJANGO_SETTINGS_MODULE'] = 'app1.prod_settings' application = WSGIHandler()

nginx настроен с 2 рабочими процессами, 2048 worker_connections и вот так: location / { uwsgi_pass unix:///home/openworks/webapps/uwsgi_test/app1.sock; include uwsgi_params; }

Как я уже сказал, есть еще одно приложение, настроенное точно таким же образом, которое работает без прерываний, но почти не имеет трафика.

Есть какие-нибудь подсказки? Почему я получаю сообщение " ... Работа процесса 16358 завершена. Seeya " сообщение?

Спасибо

Ответы [ 2 ]

4 голосов
/ 25 марта 2011

Посмотрите в журнале: req: 1000/1000

И вы установили 1000 в качестве количества запросов maxium.

Вы всегда должны добавлять --master / -M в uwsgi evenпод наблюдением это позволит перезапускать приложения без потери сокета (и без выдачи ошибки клиентам во время перезапуска).

0 голосов
/ 25 марта 2011

Похоже на это.Мы используем monit для мониторинга и перезапуска веб-сайтов, баз данных, туннелей и т. Д.

...