Samstag, Januar 18, 2020

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?

InformationsquelleAutor Olga | 2012-12-04

3 Kommentare

  1. 14

    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)

    • In unserem Fall hatten wir verpasst ein supervisorctl reread nach dem Update configs, so dass die start Befehl war auf der Suche nach einem binäre, der entfernt worden war.
  2. 1

    Da Sie mit virtualenv müssen Sie die Umgebung auf den PFAD verwendet, indem es in der supervisord.conf.

    Versuchen Sie dies:

    [program:gunicorn]
    command=/home/user/bin/manage run_gunicorn -w 4 -b 127.0.0.1:8999 -t 300 --max-requests=1000
    environment=PATH="/home/user/bin/"
    ...

    Dies ist unter der Annahme /home/user/bin/ ist der Pfad zu Ihrer virtualenv.

    • Ich habe es versucht. Aber es hat nicht funktioniert.
    • Ich bearbeitet habe, supervisord.conf und fügt hinzu: „command=/home/user/my_project/bin/gunicorn_django -w 4 -b 127.0.0.1:9999 -t 300-max-requests=1000 directory=/home/user/my_project/stratatech/stratatech/ Und danach bin/supevisorctl beginnen, gunicorn gestartet wurde. Aber meine Seite nicht öffnen auf Adresse ServerName (nginx.conf). Warum?
    • In der nginx.conf ändern hören 111111111: 80; hören: 80; dann Neustart von nginx.
    • Ich habe mein problem gelöst. Es war der falsche dns-zone. Vielen Dank für alles.
  3. 1

    Hatte ich dasselbe Problem, eigentlich fand ich heraus, es ist keine gunicorn installiert in meiner virtuellen Umgebung.

    Tun

    pip install gunicorn==<version_number>
    • Mehr geeignet zu sein, die einen Kommentar, wie es ist, einen Vorschlag zu installieren gunicorn und dann versuchen!

Kostenlose Online-Tests