gunicorn: FEHLER (keine solche Datei) nginx + gunicorn + supervisor
Ich bereitstellen von meinem django-Projekt mit gunicorn, nginx, supervisord.
Ich installierte eine gunicorn in virtualenv, Hinzugefügt INSTALL_APPS.
Der Befehl ./manage.py run_gunicorn -b 127.0.0.1:8999
funktioniert:
2012-12-04 12:27:33 [21917] [INFO] Starting gunicorn 0.16.1
2012-12-04 12:27:33 [21917] [INFO] Listening at: http://127.0.0.1:8999 (21917)
2012-12-04 12:27:33 [21917] [INFO] Using worker: sync
2012-12-04 12:27:33 [22208] [INFO] Booting worker with pid: 22208
Für nginx bearbeitet ich nginx.conf:
server {
listen 111111111:80;
server_name my_site.pro;
access_log /home/user/logs/nginx_access.log;
error_log /home/user/logs/nginx-error.log;
location /static/ {
alias /home/user/my_project/static/;
}
location /media/ {
alias /home/user/my_project/media/;
}
location / {
proxy_pass http://127.0.0.1:8999;
include /etc/nginx/proxy.conf;
}
}
Danach habe ich neu gestartet nginx.
supervisord.conf:
[unix_http_server]
file=/tmp/supervisor-my_project.sock
chmod=0700
chown=user:user
[supervisord]
logfile=/home/user/logs/supervisord.log
logfile_maxbytes=50MB
logfile_backups=10
loglevel=info
pidfile=/tmp/supervisord-my_project.pid
nodaemon=false
minfds=1024
minprocs=200
[rpcinterface:supervisor]
supervisor.rpcinterface_factory = supervisor.rpcinterface:make_main_rpcinterface
[supervisorctl]
serverurl=unix:///tmp/supervisor-my_project.sock
[program:gunicorn]
command=/home/user/bin/manage run_gunicorn -w 4 -b 127.0.0.1:8999 -t 300 --max- requests=1000
startsecs=10
stopwaitsecs=60
redirect_stderr=true
stdout_logfile=/home/user/gunicorn.log
Lief ich bin/supervisorctl start all
. Aber ich bekam:
gunicorn: ERROR (no such file)
Welche Datei fehlt? Wie kann ich mein Projekt bereitstellen?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Für zukünftige Suchende, ich hatte dieses problem und das Problem war, dass ich benötigt, um einen vollständigen Pfad zu der Gunicorn binäre. Aus welchem Grund auch immer, auch mit der PATH= environment-variable angegeben supervisor nicht finden konnte, der binären. Sobald ich /vollständiger_pfad/gunicorn es funktionierte. (Vielleicht gibt es eine Möglichkeit, dies zu tun korrekt mit Umgebungsvariablen)
supervisorctl reread
nach dem Update configs, so dass diestart
Befehl war auf der Suche nach einem binäre, der entfernt worden war.Da Sie mit virtualenv müssen Sie die Umgebung auf den PFAD verwendet, indem es in der supervisord.conf.
Versuchen Sie dies:
Dies ist unter der Annahme
/home/user/bin/
ist der Pfad zu Ihrer virtualenv.Hatte ich dasselbe Problem, eigentlich fand ich heraus, es ist keine gunicorn installiert in meiner virtuellen Umgebung.
Tun
gunicorn
und dann versuchen!