fragen stichworte

uwsgi error - connect () mit unix: /home/user/www/www.sock fehlgeschlagen

Ich bin verwirrt. Wo mache ich einen Fehler?

Speicherort der Projektdateien:

/home/username/www

/etc/uwsgi/sites/mysite.com

[uwsgi]
project = www
base =/home/username

uid = www-data
gid = www-data

chdir = %(base)/%(project)
home = %(base)/.virtualenvs/%(project)
module = %(project).wsgi:application


master = true
processes = 5

socket = %(base)/%(project)/%(project).sock

chmod-socket = 664
vacuum = true

/etc/init/uwsgi.conf:

description "uWSGI application server in Emperor mode"

start on runlevel [2345]
stop on runlevel [!2345]

respawn

exec/usr/local/bin/uwsgi --emperor/etc/uwsgi/sites

/etc/nginx/sites-available/mysite.com:

server {

    listen      80; 
    error_log /var/log/nginx/mysite_error.log  warn;

    server_name www.mysite.com mysite.com;
    charset     utf-8;

    location =/favicon.ico { access_log off; log_not_found off; }
    location/static/{
        root/home/username/www;
    }   

    location/{ 
        include         uwsgi_params;
        uwsgi_pass      unix:/home/username/www/www.sock;
    }   

    location/media  {
        alias/home/username/www/media;
    }   
}

Ich habe 502 Bad Gateway erhalten! Wie kann ich dieses Problem beheben?

antworten

In Ihrer uwsgi-Konfiguration geben Sie den Socket an:

socket = 127.0.0.1:8000

Während der nginx-Konfiguration haben Sie:

uwsgi_pass      unix:/home/username/www/www.sock;

Sie haben also nicht die richtige Socket-Konfiguration.

Sie müssen entweder beide zum TCP-Socket oder zum Unix-Socket wechseln. Unix Socket ist bevorzugt, Sie sollten dies in Ihrer uwsgi Konfiguration haben:

socket =/home/username/www/www.sock;

Oder noch besser, haben Sie die Socket-Datei in /var/run/uwsgi.sock.

Ich habe ein Problem gefunden. Ich installiere uwsgi‍ zweimal, um pip und um apt-get auch.

So uwsgi deutet auf eine falsche Installation hin und hat keinen Zugriff auf die Socket-Datei.