Назад | Перейти на главную страницу

Ошибка uwsgi - подключение () к unix: /home/user/www/www.sock не удалось

Я смущен. Где я ошибаюсь?

Расположение файлов проекта:

/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;
    }   
}

У меня 502 Bad Gateway! Как я могу решить эту проблему?

Я обнаружил проблему. Устанавливаю ‍uwsgi‍ дважды, по pip и по apt-get слишком.

Так uwsgi указывает на неправильную установку и не имеет доступа для создания файла сокета.

В конфигурации uwsgi вы указываете сокет:

socket = 127.0.0.1:8000

В конфигурации nginx у вас есть:

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

Итак, у вас нет правильной конфигурации сокета.

Вы должны либо перейти на сокет TCP, либо на сокет Unix. Сокет Unix является предпочтительным, поэтому вы должны иметь его в своем uwsgi конфигурация:

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

Или даже лучше, поместите файл сокета в /var/run/uwsgi.sock.