使用 VirtualEnv 运行 Gunicorn 时出现“连接正在使用”

使用 VirtualEnv 运行 Gunicorn 时出现“连接正在使用”

我正在尝试使用 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."可以正确显示。

我可以就这样保留它并继续教程吗?或者我在这里做错了什么?

答案1

我知道这是一个老问题,但我认为我对此有另一个答案。

我遇到了同样的问题。日志显示 gunicorn 正在尝试启动,然后有很多条目显示端口已被使用。

我意识到,我在运行脚本之前就进入了虚拟环境。然后又激活了虚拟环境。这似乎连续运行了两次脚本。当我停用控制台虚拟环境并让脚本自己处理虚拟环境时,一切都按预期工作了。

希望这对其他人有帮助。

答案2

听起来您正在运行调试服务器manage.py runserver,然后尝试启动 gunicorn,它将尝试使用相同的端口。

答案3

我遇到了类似的问题。然后我才意识到我在同一台服务器上运行了两组代码。我意识到,我在运行脚本之前已经进入了虚拟环境。然后又激活了虚拟环境。这似乎连续运行了两次脚本。一旦我停用控制台虚拟环境并让脚本自己处理虚拟环境,一切都会按预期工作。

相关内容