Назад | Перейти на главную страницу

«Используемое соединение», запуск Gunicorn с использованием VirtualEnv

Я пытаюсь настроить среду разработки с использованием Gunicorn и NGINX.

Следуя этому руководству: http://ijcdigital.com/blog/django-gunicorn-and-nginx-setup/

Я получаю следующую ошибку:

(WebApp)sl@cker:~/MyApps/WebApp$ gunicorn_django --bind=127.0.0.1:8001
2012-07-12 14:04:30 [5997] [INFO] Starting gunicorn 0.14.5
2012-07-12 14:04:30 [5997] [ERROR] Connection in use: ('127.0.0.1', 8001)
2012-07-12 14:04:30 [5997] [ERROR] Retrying in 1 second.
2012-07-12 14:04:31 [5997] [ERROR] Connection in use: ('127.0.0.1', 8001)
2012-07-12 14:04:31 [5997] [ERROR] Retrying in 1 second.
2012-07-12 14:04:32 [5997] [ERROR] Connection in use: ('127.0.0.1', 8001)
2012-07-12 14:04:32 [5997] [ERROR] Retrying in 1 second.
2012-07-12 14:04:33 [5997] [ERROR] Connection in use: ('127.0.0.1', 8001)
2012-07-12 14:04:33 [5997] [ERROR] Retrying in 1 second.
2012-07-12 14:04:34 [5997] [ERROR] Connection in use: ('127.0.0.1', 8001)
2012-07-12 14:04:34 [5997] [ERROR] Retrying in 1 second.
2012-07-12 14:04:35 [5997] [ERROR] Can't connect to ('127.0.0.1', 8001)

Мой webapp.sh файл выглядит так:

#!/bin/bash
set -e
LOGFILE=/home/sl/MyApps/WebApp/logs/webapp.log
LOGDIR=$(dirname $LOGFILE)
NUM_WORKERS=3
# user/group to run as
USER=sl
GROUP=sl
ADDRESS=127.0.0.1:8001
cd /home/sl/MyApp/WebApp
source /home/sl/VirtualEnvs/WebApp/bin/activate
test -d $LOGDIR || mkdir -p $LOGDIR
exec gunicorn_django -w $NUM_WORKERS --bind=$ADDRESS \
  --user=$USER --group=$GROUP --log-level=debug \
  --log-file=$LOGFILE 2>>$LOGFILE

При просмотре http://127.0.0.1:8001/, то "It worked! Congratulations on your first Django-powered page." отображается правильно.

Могу я просто оставить это так и продолжить обучение, или я здесь что-то не так сделал?

Я знаю, что это старый вопрос, но я думаю, что у меня есть альтернативный ответ.

У меня была такая же проблема. В журнале будет отображаться попытка запуска Gunicorn, а затем множество записей, показывающих, что порт уже используется.

Я понял, что вошел в virtualenv ДО запуска моего скрипта. Который затем снова активировал virtualenv. Кажется, это запускает скрипт дважды на ходу. Как только я деактивировал свою консоль virtualenv и позволил скрипту обрабатывать виртуальную среду самостоятельно, все заработало, как ожидалось.

Надеюсь, это поможет кому-то другому.

Похоже, вы запускаете сервер отладки manage.py runserver а затем попытаться запустить Gunicorn, который попытается использовать тот же порт.