2017-10-15 1 views
0

Ich versuche, meinen Server mit Gunicorn und Supervisor zum Laufen zu bringen. Managed es upp mit diesem Befehl zu erhalten:Gunicorn und Supervisor für Django-Server einrichten

$ gunicorn project.wsgi:application --bind 192.168.1.130:8000 

Danach ich eine gunicorn_init.bash Datei gemacht. Ich habe den Code von mehreren Tutorials bekommen. Also denke mal, es ist eine übliche Art, Gunicorn und Supervisor einzurichten. Der Code sieht wie folgt aus:

#!/bin/bash 

NAME="project"             # Name of the application 
DJANGODIR=/home/username/projects/project     # Django project directory 
SOCKFILE=/home/username/.venvs/project/run/gunicorn.sock  # We will communicate using this unix socket 
USER=username            # the user to run as 
GROUP=username            # the group to run as 
NUM_WORKERS=1             # how many worker processes shoul Gunicorn spawn 
DJANGO_SETTINGS_MODULE=project.settings.production    # which settings file should Django use 
DJANGO_WSGI_MODULE=project.wsgi         # WSGI module name 
echo "Starting $NAME as `whoami`" 

# Activate the virtual environment 

cd $DJANGODIR 
source /home/username/.venvs/project/bin/activate 
export DJANGO_SETTINGS_MODULE=$DJANGO_SETTINGS_MODULE 
export PYTHONPATH=$DJANGODIR:$PYTHONPATH 

# Create the run directory if it doesn't exsist 

RUNDIR=$(dirname $SOCKFILE) 
test -d $RUNDIR || mkdir -p $RUNDIR 

# Start yout Django Unicorn 
# Programs meant to be run under supervisor should not daemonize themselves (do not use daemon) 

exec gunicorn ${DJANGO_WSGI_UNICORN}:application \ 
    --name $NAME \ 
    --workers $NUM_WORKERS \ 
    --user=$USER --group=$GROUP \ 
    --bind=unix:$SOCKFILE \ 
    --log-level=debug \ 
    --log-file=- 

Das gibt mir einzige Ausnahme ist Arbeitsprozess wie folgt aus:

[2017-10-15 12:35:37 +0200] [30218] [INFO] Starting gunicorn 19.7.1 
[2017-10-15 12:35:37 +0200] [30218] [DEBUG] Arbiter booted 
[2017-10-15 12:35:37 +0200] [30218] [INFO] Listening at: unix:/home/username/.venvs/project/run/gunicorn.sock (30218) 
[2017-10-15 12:35:37 +0200] [30218] [INFO] Using worker: sync 
[2017-10-15 12:35:37 +0200] [30223] [INFO] Booting worker with pid: 30223 
[2017-10-15 12:35:37 +0200] [30223] [ERROR] Exception in worker process 
Traceback (most recent call last): 
    File "/home/username/.venvs/project/lib/python3.5/site-packages/gunicorn/arbiter.py", line 578, in spawn_worker 
    worker.init_process() 
    File "/home/username/.venvs/project/lib/python3.5/site-packages/gunicorn/workers/base.py", line 126, in init_process 
    self.load_wsgi() 
    File "/home/username/.venvs/project/lib/python3.5/site-packages/gunicorn/workers/base.py", line 135, in load_wsgi 
    self.wsgi = self.app.wsgi() 
    File "/home/username/.venvs/project/lib/python3.5/site-packages/gunicorn/app/base.py", line 67, in wsgi 
    self.callable = self.load() 
    File "/home/username/.venvs/project/lib/python3.5/site-packages/gunicorn/app/wsgiapp.py", line 65, in load 
    return self.load_wsgiapp() 
    File "/home/username/.venvs/project/lib/python3.5/site-packages/gunicorn/app/wsgiapp.py", line 52, in load_wsgiapp 
    return util.import_app(self.app_uri) 
    File "/home/username/.venvs/project/lib/python3.5/site-packages/gunicorn/util.py", line 352, in import_app 
    __import__(module) 
ValueError: Empty module name 
[2017-10-15 12:35:37 +0200] [30223] [INFO] Worker exiting (pid: 30223) 
[2017-10-15 12:35:37 +0200] [30218] [INFO] Shutting down: Master 
[2017-10-15 12:35:37 +0200] [30218] [INFO] Reason: Worker failed to boot. 

Ich las und sah Tutorials. In Docs eingeloggt und versucht herauszufinden, warum es beim Aufruf der Gunicorn-Bash-Datei nicht funktioniert.

Alle Hinweise in die richtige Richtung werden jetzt sehr geschätzt. Ich bin seit einiger Zeit festgefahren.

Antwort

1

Sie haben eine inkonsistente Variable. Am Anfang des Skripts definieren Sie DJANGO_WSGI_MODULE, aber im Aufruf von Gunicorn verwenden Sie DJANGO_WSGI_UNICORN, die nicht existiert. Stellen Sie sicher, dass Sie denselben Namen verwenden.

+0

Die Anzahl der Male, die ich durch den Code gelesen habe und dies nicht gesehen habe. Danke Daniel aka Adler Auge – sumpen

+0

Vergessen Sie nicht, die Antwort zu akzeptieren, als ein Hinweis für zukünftige Sucher, dass es Ihr Problem gelöst hat. –

Verwandte Themen