Я запускаю чероки для обслуживания приложения django с помощью uwsgi. У меня было какое-то странное поведение после обновления до чероки 1.2.x.
Настройка работала нормально до версии cherokee 1.2.x, и я не менял никаких настроек.
Проблема в том, что теперь, когда uwsgi не запущен и я пытаюсь загрузить сайт приложения django, я сначала получаю ошибку 503. Последующие запросы работают нормально. Глядя на журналы, я вижу, что чероки порождает несколько экземпляров uwsgi, и это, похоже, проблема.
Я разместил журнал cherokee.error здесь
Похоже, чероки порождает несколько экземпляров uwsgi:
probably another instance of uWSGI is running on the same address.
Мои конфиги для uwsgi:
<pidfile>/home/my_home/my_project/uwsgi.pid</pidfile>
<vacuum />
<processes>4</processes>
<harakiri>30</harakiri>
<master />
Еще одним признаком проблемы является то, что после ошибки 503 и последующего успешного запуска uwsgi у меня нет PID-файла. Это связано с тем, что дополнительные экземпляры uwsgi, которые запускаются, а затем не удаляют файл PID при выходе:
binding on TCP port: 45611
probably another instance of uWSGI is running on the same address.
bind(): Address already in use [socket.c line 341]
VACUUM: pidfile removed.
Итак, в целом проблемы следующие:
- 503 отображается при первом просмотре после запуска uwsgi чероки
- Файл PID не создается (точнее, создается, но сразу же удаляется другим выходящим процессом uwsgi)
Поиск в Google для probably another instance of uWSGI is running on the same address
соответствует только исходному коду uwsgi, так что, похоже, я единственный, кто столкнулся с этим.
Я сталкиваюсь с этой же проблемой на нескольких компьютерах с одинаковой настройкой.
Любые идеи?
Версии ПО:
- UWSGI 0.9.6.2
- Чероки 1.2.1
- Сундук разработки Django (между 1.3 rc и 1.3)