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