Ошибка 502 с Django/nginx/uwsgi

Я очень нервничаю, потому что пытаюсь запустить этот сайт на своем сервере Ubuntu. Я просто фронтендер, который пытается сам размещать вещи. Я думаю, что я почти получил его вниз. Но все еще получаю ошибку 502 bad gateway при посещении домена.

Это мое дерево проекта:

-- var
    -- www
        -- stacaravanverhuurgroesbeek
            |-- env/
            |-- logs/
                |-- access.log
                |-- error.log
                `-- uwsgi.log
            |-- conf/
            |   |-- stacaravanverhuurgroesbeek.sock
            |   `-- uwsgi.ini
            `-- public/
                |-- manage.py
                |-- media/
                |-- project.db
                |-- requirements.txt
                |-- static/
                `-- website/
                    |-- dev/
                    |-- gulp/
                    |-- gulpfile.js
                    |-- package.json
                    |-- settings.py
                    |-- static/
                    |-- templates/
                    |-- urls.py
                    `-- wsgi.py

Мой ini-файл uwsgi: /var/www/stacaravanverhuurgroesbeek/conf/uwsgi.ini:

[uwsgi]
# variables
projectname = stacaravanverhuurgroesbeek
projectdomain = stacaravanverhuurgroesbeek.nl 
base = /var/www/stacaravanverhuurgroesbeek

# config
chdir = %(base)/public
home = %(base)/env
wsgi-file = %(base)/public/website/wsgi.py

master = True
processes = 5

socket = %(base)/conf/%(projectname).sock
vacuum = true
die-on-term = true

logto = %(base)/logs/uwsgi.log

Моя конфигурация nginx: /etc/nginx/sites-available/stacaravanverhuurgroesbeek:

server {
    listen 80;
    server_name stacaravanverhuurgroesbeek.nl www.stacaravanverhuurgroesbeek.nl;

    root /var/www/stacaravanverhuurgroesbeek/;
    access_log /var/www/stacaravanverhuurgroesbeek/logs/access.log;
    error_log /var/www/stacaravanverhuurgroesbeek/logs/error.log;

    location /static/ {
        root /var/www/stacaravanverhuurgroesbeek/public/static/;
    }

    location /media/ {
        root /var/www/stacaravanverhuurgroesbeek/public/media/;
    }

    location / {
        include         uwsgi_params;
        uwsgi_pass      unix:///var/www/stacaravanverhuurgroesbeek/conf/stacaravanverhuurgroesbeek.sock;
    }
}

Я также связал этот файл с sites-enabled.

И мой сценарий запуска: /etc/init/uwsgi.conf

# Emperor uWSGI script

description "uWSGI Emperor"
start on runlevel [2345]
stop on runlevel [!2345]

setuid bastard
setgid bastard

exec uwsgi --master --emperor /etc/uwsgi/vassals

Также каждый раз, когда я что-то менял, я перезапускал и nginx, и uwsgi, но безрезультатно.

Я действительно надеюсь, что кто-то может увидеть, в чем проблема в моей настройке.


person Bas Kaal    schedule 14.11.2015    source источник
comment
Ваша конфигурация wsgi связана с вассалами? Как император находит ваш конфиг?   -  person Jared Mackey    schedule 14.11.2015
comment
@electrometro да, я сделал символическую ссылку на каталог вассалов ..   -  person Bas Kaal    schedule 14.11.2015
comment
Должно ли это имя пути сокета unix иметь три косые черты? Обычно подойдет один.   -  person Richard Smith    schedule 14.11.2015
comment
@RichardSmith Я пробовал оба раньше, где-то видел три косые черты в посте .. А пока я также изменил их обратно на одну косую черту, но все равно безрезультатно :(   -  person Bas Kaal    schedule 14.11.2015
comment
Создан ли файл .sock? Если да, попробуйте удалить его и перезапустить nginx.   -  person het.oosten    schedule 17.11.2015
comment
Больше не удалось отредактировать мой комментарий... Что говорит файл журнала Nginx?   -  person het.oosten    schedule 17.11.2015
comment
Вы смотрели свои лог-файлы? Вы должны иметь возможность видеть, что происходит.   -  person henrikstroem    schedule 21.11.2015


Ответы (1)


Возможно, вам следует настроить upstream в конфигурации Nginx, так как вы собираетесь проксировать все запросы к uWSGI. Например.:

upstream uwsgi_app {
    server unix:///path/to/your/mysite/mysite.sock; # взаимодействие  
}

server {
    ...
    location / {
        uwsgi_pass uwsgi_app;
        include uwsgi_params;
    }
    ...
}

Если это не сработает, предоставьте также журнал uWSGI, чтобы убедиться, что запрос действительно достигает uWSGI и не произошло ошибки.

person Andrey Rusanov    schedule 17.11.2015